我试图弄清楚如何在不失去约束的情况下调整 UITextView (以及实际上的所有内容)的大小。基本上,我正在尝试布局一个页面,其中大多数组件可以具有可变大小(如描述)。我尝试用一个简单的用例来做这件事,我在下面有一个 UITextView 和一个 UIButton。我想确保按钮的位置相对于 UITextView 的底部。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
CGRect frame = self.textView.frame;
int height = self.textView.contentSize.height;
frame.size.height = height;
self.textView.frame = frame;
}
我最终得到的是 UITextView 与 UIButton 重叠。经过一番研究,似乎如果我更换框架,所有约束也都消失了。我尝试复制约束,但当然指针仍然指向旧框架,所以这根本没有帮助。
有没有解决非常动态布局的页面的好方法?我正在尝试至少使用界面构建器而不是编写所有代码。
已编辑
我尝试按照建议更新约束,但这实际上并没有调整 UITextView 的大小。我做错了吗?当我再次获得常量时,它会更新,但高度不会在视觉上发生变化。我确实通过为约束添加一个 IBOutlet 来简化我的代码。然而仍然没有运气。
int height = self.textView.contentSize.height;
self.textViewHeightConstraint.constant = height;
已编辑 2
我现在想通了。我对底部有一个额外的约束,这阻止了我实际调整 UITextView 的大小。