如何统计UITextView显示的字符?

时间:2010-09-23 12:31:07

标签: iphone objective-c uitextview

在应用UILineBreakModeWordWrap后,如何学习UITextView在其特定contentSize中显示的总字符数。

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

我想学习UITextView中可见的字符数。

1 个答案:

答案 0 :(得分:1)

在NSString中使用此方法:

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

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