我使用下面的代碼用於計算文本的高度,然後設置這個高度UILabel
和UITextView
如何計算文本
CGSize targetSize = CGSizeMake(300, CGFLOAT_MAX);
NSString *message = @"The Internet connection appears to be offline.";
NSStringDrawingContext *context = [[NSStringDrawingContext alloc] init];
CGSize boundingBox = [message boundingRectWithSize:targetSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:FontOpenSanWithSize(14)}
context:context].size;
CGSize size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));
// it will return size:width = 299 and size height 20
// => if I use this height and set for UILabel, it can display full content
// => if I use this height and set for UITextView, it can not display full content
TextView的高度基地這是工作完美的UILabel
但UITextView
某個時候計算錯誤。
我認爲問題發生是因爲UITextView
的填充(左,右)大於UILabel
。
那麼我如何計算在UITextView
中顯示的文本的正確大小。任何幫助或建議將不勝感激。
像下面
與尺寸相同的(300),相同的字體,文字相同但在2行的顯示UITextView
描述圖像,但在1行UILabel
。 而我的推算身高回報20,它不足以在2行顯示的代碼,所以UITextView
不能顯示完整的內容
我之所以需要計算UITextView
基礎的高度上的文字,因爲我UITextView
在彈出窗口中。 而彈出的高度將取決於TextView
高度
您可以綁定textview高度常量,然後用它來更新身高我猜 –
只需訪問這裏http://stackoverflow.com/questions/31678779/how-to-dynamically-change-the-textview-height-and- cell-height-according-the-t –
可能的重複[如何調整UITextView的內容大小?](http://stackoverflow.com/questions/50467/how-do-i-size-a- uitextview-to-its-content) – Sandy