2011-03-09 58 views
1

我想统计多少个自动换行符(不是用户输入的回车)我在UITextView中显示的文本中,出于参数的缘故,它的宽度为200像素,长度为460像素(请参阅附加屏幕截图!) 。如何计算UITextView中的换行符(而不是/ n)?

寻找一个解决方案时,我发现这一点:

stringSize = [t sizeWithFont:f constrainedToSize:CGSizeMake(320, 10000) 
lineBreakMode:UILineBreakModeWordWrap]; 

但是,这不会给我的“隐形”线刹车整型数字,会吗?另外,我不明白320,10000 ... 320是我猜的宽度,在我的情况下需要更改为200。但为什么10.000?

很抱歉,但我是一个初学者,这并没有太大的意义,我... enter image description here

+0

为什么你需要换行的数量?什么是你想解决的更高层次的问题? – DarkDust 2011-03-09 17:09:21

+0

@DarkDust:我想看看我在屏幕上留下了多少空间。我不想使用滚动 - 所以当页面已满时,我想切掉不再显示的字符串的其余部分,并将其放到下一页。你能理解这个吗? – 2011-03-09 17:16:10

+0

但是,那么你不关于线条的数量,你关心的文本的高度,或者我错过了什么?你已经用'sizeWithFont:constrainedToSize:'获得了高度。 – DarkDust 2011-03-10 07:46:27

回答

1

CGSizeMake声明是为了计算文本的大小提供界限。通常限制宽度并为高度设置较高的值以为计算留出足够的空间。

对于您的情况,宽度将为200,只要文本不太长,您可以将高度保留为10000。

+0

谢谢,但是如何从CGSizeMake中获得一个int,这将揭示我有多少隐形线路刹车?对不起,如果这是显而易见的,但我不明白这将如何帮助我确定看不见的线路刹车。 – 2011-03-09 17:09:49

+0

@Daniel Nicolae:使用'sizeWithFont:'获取单行的高度(不受限制,它会根据文档给出单行的结果)。然后将约束结果的高度除以不受约束的结果的高度。 – DarkDust 2011-03-09 17:13:54

+0

@DarkDusk:恐怕我还是不明白。我并不是在寻找一条线的高度,而是总线的高度。例如,在我的例子中有4行,但只有一个'/ n' - 所以必须有三个不可见的换行符。我如何数它们?对不起,是一个滋扰。 – 2011-03-09 18:01:47