2014-04-11 69 views
0

我一直在使用autolayout嘗試建立可擴展textView在故事板。故事板和可擴展的TextView

這裏是我設置的約束如何:

enter image description here enter image description here

場附近的 「說明」 是UITextView。我希望它擴大它取決於多少行文本字段包含。

視圖的樹形結構是: UIView - >UITextView

而且我現在做到這一點:

- (void)textViewDidChange:(UITextView *)textView { 
    CGFloat fixedWidth = textView.frame.size.width; 
    CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)]; 
    CGRect newFrame = textView.frame; 
    newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height); 
    textView.frame = newFrame; 
} 

它擴大UITextView按預期的父視圖的底部。但我的任務是:

  1. 按預期展開文本字段。
  2. 展開父視圖的height還保存底部的邊緣。

正如你所看到的我與frame混亂,但我有這種感覺,我需要使用約束。你能提出一個合適的解決方案嗎

+2

連接'IBOutlet'到約束並更新它的值,而不是改變幀。給父母添加高度約束並更新它可能會完成任務。 – Akhilrajtr

+0

是啊,你說得對 - 這做的伎倆。應該是一個答案:) – Kuba

回答

1

嘗試以下操作:

  • 添加高度約束parentViewUITextView
  • 連接IBOutlet到高度約束
  • 更新,在textViewDidChange:方法編程約束
0

是可能的以編程方式更新約束。關鍵是取消勾選上的TextView的「滾動啓用」現場並設置視圖的高度約束比初始常大於或等於。