2013-10-02 56 views
1

這應該是如此簡單,但由於某種原因,它不適合我。我想調整我的文本框的大小,最好在底部填充一些填充。現在我會妥善調整大小。調整UITextView的大小 - 高度不調整

的設置

在我的故事板的單一視圖

接口

@property (weak, nonatomic) IBOutlet UITextView *messageTextBox; 

實施

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    _messageTextBox.text = _message.body; 
    [_messageTextBox sizeToFit]; 
} 

我嘗試了好幾種不同的解決方案,包括改變幀這裏等用戶的建議的高度...

這是使用ios7和Xcode的5,但我不明白爲什麼會有這樣的一個問題基本功能。

爲了補充我的疑惑,我已經在sizeToFit之後記錄了框架高度和contentize。我的結果是:

2013-10-02 18:40:20.803 narg[21467:a0b] H of the frame: 618.000000 
2013-10-02 18:40:20.804 narg[21467:a0b] W of the frame: 469.000000 
2013-10-02 18:40:20.804 narg[21467:a0b] Reported H of contentSize property on object 42.000000 

所以框架清楚的知道正確的高度,但在顯示器上所有的文字被切斷與框不調整大小。

回答

4

這是我的問題的答案。在某些時候,我根據自己的觀點檢查了Autolayout。這有效地鎖定了視圖,並且不允許我調整框架大小。

如果您看到了類似的問題,該框架不調整嘗試以下方法:

  • 進入界面生成器並打開視圖
  • 在文件上單擊檢查
  • 取消自動佈局。

這解決了我的問題。

+1

的框架這是如此難以置信的幫助。我在這上面浪費了幾個小時。這一個工作。謝謝。 –

+0

現在爲編程替代... – CQM

0

看看here來計算UITextView的好幀,具體取決於您的文本_message.body。你可以添加一個空白來獲得這樣的底部填充:

- (CGFloat)textViewHeightForAttributedText:(NSAttributedString*)text andWidth:(CGFloat)width 
{ 
    UITextView *calculationView = [[UITextView alloc] init]; 
    [calculationView setAttributedText:text]; 
    CGSize size = [calculationView sizeThatFits:CGSizeMake(width, FLT_MAX)]; 
    return size.height + 50; // 5O is your gap for example 
} 
+0

我想我已經嘗試過,但會再試一次。所以我會打電話給這只是爲了獲得高度?我的身高目前正在準確報告。但框架不調整...... – mday

+0

這樣的事情應該工作,因爲這是我們在項目中使用 – timpone

+0

用它來計算您的新的高度,並改變你的文本視圖 –