我不想设置Y位置约束,因为我需要视图相对于彼此,因为我有一个UITextView必须和应根据如何动态更改其值其中有许多行文字。但它并没有这样做。我可以通过调用UITextView上的sizeToFit()来强制它,但它会重叠下面的视图。
Xcode唠叨我减少歧义,整个视图控制器上都有红线,但如果必须是动态的话,手动拥有Y位置约束对我没有任何意义。
所以我的问题是我该怎么做 1.在文本行数增加后,让我的UITextView调整其高度 2.使下面的视图自动下推,以便UITextView不会重叠它们。
我已经阅读了多个答案并且设法做了1而不是另一个。
Swift中的解决方案:
let sizeThatFitsTextView = textView.sizeThatFits(CGSizeMake(textView.frame.size.width, textView.frame.size.height))
textViewHeightConstraint.constant = sizeThatFitsTextView.height
答案 0 :(得分:1)
1)来自故事板或编码的Disable the scroll of Textview
。
2)为outlet
创建textview's height constraint
。当基于计算发生文本更改时,以编程方式从textView委托方法更改高度约束。
CGSize sizeThatFitsTextView = [TextView sizeThatFits:CGSizeMake(TextView.frame.size.width, MAXFLOAT)];
TextViewHeightConstraint.constant = sizeThatFitsTextView.height;