2
此問題已被多次詢問,但重複給出的兩個或三個答案似乎不起作用。UITextView調整寬度以適應文本
問題是:一個包含一些任意文本的UITextView。在做了一些動作之後,UITextView需要在水平和垂直方向調整大小以適合文本。
對其他問題的回答給出的值看起來大約與文本的寬度/高度相同;但是,當UITextView
被調整爲計算大小時,它不是很正確,並且文本行分裂與原來的不同。
推薦方法包括使用– sizeWithFont:constrainedToSize:
和其他的NSString方法中,UITextView的(這給出了更正確的高度,但是視圖的全寬)的sizeThatFits:
方法,文本視圖的contentSize
屬性(還給出了錯誤的寬度)。
是否有準確的方法來確定UITextView
的文本的寬度?或者是在文本視圖中有一些隱藏的填充,使文本適合的實際寬度更小?還是別的我完全失蹤?
出於好奇,如果使用sizeWithFont方法,結果有多遠? UITextView * textView = [[UITextView alloc] initWithFrame:CGRectMake(20,20,300,200)]; textView.font = [UIFont systemFontOfSize:10.0f]; (textView.contentInset.left + textView.contentInset.left),MAXFLOAT)lineBreakMode:UILineBreakModeWordWrap] [size = -1] CGSize textViewSize = [textView.text sizeWithFont:[UIFont systemFontOfSize:10.0f] constrainedToSize:CGSizeMake(textView.frame.size.width - (textView.contentInset.left + textView.contentInset.left) ; – 2012-08-09 23:30:38
很難說完全是因爲我沒有正確的編號來比較它。內容插入全部爲零。 sizeWithFont返回的大小太小,因此會增加額外的分數。如果我增加了設置文本視圖的寬度[textView.text sizeWithFont:font constrainedToSize:textView.frame.size] + fudge,十六個一致似乎是給出正確大小的幻數。如果文本在一個詞的中間而不是在一個空格處打破,那不起作用。在這種情況下,sizeWithFont是正確的。 – 2012-08-10 13:30:12
也許空間字符不被sizeWithFont考慮,但會影響每條線如何適合uiTextView? – 2012-08-10 13:30:56