2011-07-27 50 views
3

UITextView即使所有文本都符合其框架,也會滾動。它滾動,好像文本底部有兩行新的行,但沒有。所以,其contentSize.height似乎是比文本更大的幾行。我如何擺脫這一點?也就是說,我如何收緊內容大小?UITextView contentSize.height大於需要?

+0

我也面臨同樣的問題。我注意到隨着UITextView文本長度的增長,空間上的差異變得更大。 – Rodrigo

+4

UITextView在所有方向上都有固定的8像素邊距,通常在使用此控件時會考慮到許多尺寸異常情況。 – reddersky

回答

0

您可以爲該UITextView設置contentSize,以便將其緊縮爲文本。

您可以使用名爲sizeWithFont NSString的方法....你可以查看完整列表,在這裏:http://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html

我注意到一些問題,他們中的一些工作,而是一個永遠不會失敗我的是:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size 

我想你有一個固定的寬度,並想找出正確的高度。考慮到一個固定的200像素寬,這將是這樣的:

NSString *myText = @"Some text..."; 
CGSize tightContentSize = [mytext sizeWithFont:[UIFont fontWithName:@"Helvetica" size:12] constrainedToSize:CGSizeMake(200, 10000000)].height; 

[myTextView setContentSize:tightContentSize]; 

考慮到你的UITextView在所有方向上的8像素填充,所以如果你的UITextView框架200的寬度,你會actualy有一個184px寬度文本。

0

現在已經晚了,但是,對於其他人來說,嘗試用:

self.textView.contentInset = UIEdgeInsetsZero; 

這是爲我工作。