iOS Storyboard - 自动布局不会调整 subview 的大小和位置

标签 ios xcode swift autolayout storyboard

我不想设置 Y 位置约束,因为我需要 View 彼此相对,因为我有一个 UITextView 必须并且应该根据如何动态更改其值里面有很多行文字。但它不会这样做。我可以通过在 UITextView 上调用 sizeToFit() 来强制它执行此操作,但它会与下面的 View 重叠。

Xcode 提醒我减少歧义, View Controller 上到处都是红线,但如果必须是动态的,手动设置 Y 位置约束对我来说没有任何意义。

所以我的问题是我该如何 1. 让我的 UITextView 在文本行数增加后调整它的高度 2. 使其下方的 View 自动下推,这样 UITextView 就不会与它们重叠。

我已经阅读了多个答案并设法做到了 1 而不是另一个。

Swift 中的解决方案:

let sizeThatFitsTextView = textView.sizeThatFits(CGSizeMake(textView.frame.size.width, textView.frame.size.height))
textViewHeightConstraint.constant = sizeThatFitsTextView.height

最佳答案

1) 从 Storyboard或通过编码禁用 Textview 的滚动

2) 为textview 的高度约束 创建一个outlet。当基于计算发生文本更改时,通过 textView 委托(delegate)方法以编程方式更改高度约束。

CGSize sizeThatFitsTextView = [TextView sizeThatFits:CGSizeMake(TextView.frame.size.width, MAXFLOAT)];

TextViewHeightConstraint.constant = sizeThatFitsTextView.height; 

关于iOS Storyboard - 自动布局不会调整 subview 的大小和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37919701/

相关文章:

ios - 谷歌地图全屏显示。如何将其填充到半屏?

swift - 屏幕大时的标签

swift - 使用通知中心将值设置为 TableView 中的标签

uitableview - Swift - 步进器的 TableView,单击单元格中的一个步进器并激活其他步进器?

ios - SwiftUI 对其 Root View 的一些 View

ios - UITableViewCell 具有多行输入字段?

ios - Xcode "no such file or directory"如果文件名包含 $$ 符号?

ios - 将 WatchKit 扩展代码 (git repo) 与现有 iPhone 代码 (repo) 分开

ios - UICollectionView 在水平滚动时在下一个单元格中显示上一个单元格内容

ios - UIAlertAction 中空文本字段的摇动动画