如何计算UITextView显示的字符?

问题描述:

如何在应用UILineBreakModeWordWrap后,了解UITextView在其特定contentSize中显示的字符总数。如何计算UITextView显示的字符?

我会每次使用不同的字符串作为UITextView的文本。 这些字符串比UITextView的指定区域可以包含的字符长得多。对于每个不同的字符串,可见字符都会有所不同,因为行尾的空格长度不同。

我想了解在我的UITextView中可见的字符数。

+0

你能用你正在使用的编程语言/ API来标记你的问题吗? – fredley 2010-09-23 12:33:00

使用从NSString的这个方法:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode 
  • 您计算第一的UITextView的高度应该是多长时间来适应整个文本。
  • 使用比例,你会发现你的字符串应该适合实际大小的时间。
  • a)如果该字符串符合当前大小,您可以逐个添加字符,并再次检查大小,直到它不再适合 - >限制是您正在寻找的。
  • b)如果该字符串不适合当前的大小,那么您可以逐个删除字符,直到它适合 - >再次,这个限制就是您在这种情况下寻找的。

这是一个非常密集的方法,但我认为它是唯一的一个(您可以通过添加/删除剩余字符串的一半而不是添加/删除字符来优化它。

+0

谢谢Alin,我认为你是对的,我也找不到任何其他“更有用”的方法。我会按照你的解释去做,但我会逐字添加或删除字符。 – chelenli 2010-09-24 07:03:03