2013-11-10 28 views
0

我有一個uitextview,我正在嘗試根據它裏面的文本來調整大小。我使用下面的代碼:嘗試將UITextView調整爲其contentSize。 ContentSize始終是30,當它不應該是

[self.view addSubview:storyText]; 
[storyText sizeToFit]; 
[storyText layoutIfNeeded]; 
[storyText setScrollEnabled:NO]; 
CGRect frame = storyText.frame; 
frame.size.height = storyText.contentSize.height; 
frame.size.width = 280; 
storyText.frame = frame; 

框架肯定是調整,但問題是,它會按多少行有沒有調整,而是始終調整大小以30的高度隨着的NSLog ,我確定contentSize被設置爲30,無論文本視圖中有多少行。我是否需要手動設置contentSize,還是根據內容佔用多少空間來計算?如果是這樣,爲什麼它總是將自己設置爲30?

更新: 我按照建議嘗試了以下方法,但沒有奏效。

[storyText setScrollEnabled:NO]; 
[storyText sizeToFit]; 
[storyText sizeThatFits:CGSizeMake(280,CGFLOAT_MAX)]; 
[storyText layoutIfNeeded]; 

CGRect storyFrame = storyText.frame; 
storyFrame.size.height = storyText.contentSize.height; 
storyFrame.size.width = 280; 
storyText.frame = storyFrame; 

其他建議?

+0

嘗試調用sizeToFit之後[storyText setScrollEnabled:NO] –

+0

這並沒有什麼區別。 –

+0

然後嘗試使用'[textView sizeThatFits:CGSizeMake(widthOfView,CGFLOAT_MAX)]''。它對我有用 –

回答

0

我嘗試使用您的代碼。我的代碼:

UITextView *txtView = [UITextView new]; 
txtView.text = @"some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_some_big_text_"; 
txtView.scrollEnabled = NO; 
[c.view addSubview:txtView]; 

CGSize size = [txtView sizeThatFits:CGSizeMake(280,CGFLOAT_MAX)]; 
txtView.frame = CGRectMake(.0f, .0f, size.width, size.height); 

我得到正確的textview高度。你可以試試嗎?