2010-09-23 68 views
4

如何在應用UILineBreakModeWordWrap後,瞭解UITextView在其特定contentSize中顯示的字符總數。如何計算UITextView顯示的字符?

我會每次使用不同的字符串作爲UITextView的文本。 這些字符串比UITextView的指定區域可以包含的字符長得多。對於每個不同的字符串,可見字符都會有所不同,因爲行尾的空格長度不同。

我想了解在我的UITextView中可見的字符數。

+0

你能用你正在使用的編程語言/ API來標記你的問題嗎? – fredley 2010-09-23 12:33:00

回答

1

使用從NSString的這個方法:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode 
  • 您計算第一的UITextView的高度應該是多長時間來適應整個文本。
  • 使用比例,你會發現你的字符串應該適合實際大小的時間。
  • a)如果該字符串符合當前大小,您可以逐個添加字符,並再次檢查大小,直到它不再適合 - >限制是您正在尋找的。
  • b)如果該字符串不適合當前的大小,那麼您可以逐個刪除字符,直到它適合 - >再次,這個限制就是您在這種情況下尋找的。

這是一個非常密集的方法,但我認爲它是唯一的一個(您可以通過添加/刪除剩餘字符串的一半而不是添加/刪除字符來優化它。

+0

謝謝Alin,我認爲你是對的,我也找不到任何其他「更有用」的方法。我會按照你的解釋去做,但我會逐字添加或刪除字符。 – chelenli 2010-09-24 07:03:03