iOS 故事板 - 自动布局不会调整子视图的大小和位置
Posted
技术标签:
【中文标题】iOS 故事板 - 自动布局不会调整子视图的大小和位置【英文标题】:iOS storyboard - Auto Layout won't resize and reposition subviews 【发布时间】:2016-06-20 10:04:54 【问题描述】:我不想设置 Y 位置约束,因为我需要视图彼此相对,因为我有一个 UITextView 必须并且应该根据如何动态更改其值里面有很多行文字。但它并没有这样做。我可以通过在 UITextView 上调用 sizeToFit() 来强制它执行此操作,但随后它会与下面的视图重叠。
Xcode 提醒我减少歧义,并且整个视图控制器上都有红线,但如果必须是动态的,手动设置 Y 位置约束对我来说没有任何意义。
所以我的问题是我该怎么做 1.让我的UITextView在文本行数增加后调整其高度 2. 使其下方的views自动下推,使UITextView不会重叠。
我已经阅读了多个答案,并设法做到了 1 但没有做到另一个。
Swift 中的解决方案:
let sizeThatFitsTextView = textView.sizeThatFits(CGSizeMake(textView.frame.size.width, textView.frame.size.height))
textViewHeightConstraint.constant = sizeThatFitsTextView.height
【问题讨论】:
【参考方案1】:1) Disable the scroll of Textview
来自故事板或编码。
2) 为textview's height constraint
创建一个outlet
。当基于计算发生文本更改时,通过 textView 委托方法以编程方式更改高度约束。
CGSize sizeThatFitsTextView = [TextView sizeThatFits:CGSizeMake(TextView.frame.size.width, MAXFLOAT)];
TextViewHeightConstraint.constant = sizeThatFitsTextView.height;
【讨论】:
@Questioner 欢迎 :-)以上是关于iOS 故事板 - 自动布局不会调整子视图的大小和位置的主要内容,如果未能解决你的问题,请参考以下文章