在我的視圖控制器中,我有一個UITextView。該文本視圖中填充了一個字符串。字符串可以是短或長。根據字符串的長度,textview的高度必須調整。 我使用故事板和自動佈局。如何在SWIFT中將文本視圖的高度調整爲其內容?
我有一些與textview的高度的麻煩。
有時候,高度可以根據文本進行完美調整。有時,不,文本在第一行被裁剪。下面,textview是黃色的。藍色是scrollview內的容器視圖。紫色是一張照片的地方。
的文本是從我的核心數據的基礎上,他們是字符串屬性。 在屏幕1和2之間,唯一改變的是字符串。
如果我打印在控制檯中的字符串我有正確的文本:
my amazing new title
Another funny title for demo
我的TextView的約束:
我不明白爲什麼我有2個不同的顯示器。
編輯
我試過@Nate建議,在viewDidLoad中,我說:
myTextViewTitle.text="my amazing new title"
myTextViewTitle.setContentHuggingPriority(1000, forAxis: UILayoutConstraintAxis.Vertical)
myTextViewTitle.setContentCompressionResistancePriority(1000, forAxis: UILayoutConstraintAxis.Vertical)
myTextViewTitle.setTranslatesAutoresizingMaskIntoConstraints(false)
let views = ["new_view": myTextViewTitle]
var constrs = NSLayoutConstraint.constraintsWithVisualFormat("|-8-[new_view]-8-|", options: NSLayoutFormatOptions(0), metrics: nil, views: views)
self.view.addConstraints(constrs)
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-8-[new_view]", options: NSLayoutFormatOptions(0), metrics: nil, views: views))
self.myTextViewTitle.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[new_view([email protected])]", options: NSLayoutFormatOptions(0), metrics: nil, views: views))
沒有結果。帶或不帶高度contraint增加了我在Interface Builder的TextView ...
EDIT 2
我需要一個UITextView的,而不是一個的UILabel,因爲後退按鈕,使用排除路徑。
let exclusionPathBack:UIBezierPath = UIBezierPath(rect: CGRect(x:backButton.bounds.origin.x, y:backButton.bounds.origin.y, width:backButton.bounds.width+10, height:backButton.bounds.height))
myTextViewTitle.textContainer.exclusionPaths=[exclusionPathBack]
嘗試SOLU這裏列出:http://stackoverflow.com/questions/16009405/uilabel-sizetofit-doesnt-work-with-autolayout-ios6。 'sizeToFit'方法是要走的路,但在你的情況下你也需要約束。 – 2015-04-03 12:36:29
在UITextView中啓用了滾動嗎? – Abdullah 2015-04-03 15:43:25
@NateLee,這個解決方案是針對UILabel的。我使用UITextView。 – cmii 2015-04-03 16:26:51