我是IOS开发的新手,所以当我动态更改UITextFeild的宽度时,我希望下面的按钮向上移动。 我尝试使用约束但它似乎没有动态转移。
(IBAction)selectStatus:(id)sender {
CGRect frameRect = _textViewDevices.frame;
frameRect.size.height = 10;
self.textViewDevices.frame = frameRect;
如何实现这一目标的任何好例子?
我想实现类似于android中的相对定位。
答案 0 :(得分:2)
尝试在修改后调用layoutIfNeeded
:
- (IBAction)selectStatus:(id)sender {
CGRect frameRect = _textViewDevices.frame;
frameRect.size.height = 10;
self.textViewDevices.frame = frameRect;
[self.view layoutIfNeeded];
}
如果文本视图上有高度约束,请尝试设置其常量而不是设置框架高度:
- (IBAction)selectStatus:(id)sender {
self.textViewHeightConstraint.constant = 10;
[self.view layoutIfNeeded];
}
答案 1 :(得分:0)
当第一个紫色字段的高度发生变化时,以编程方式使下面的所有视图保持在其旁边,您应该正确更新frame.origin.y
。
因此,例如,状态标签应该像这样重新构建
CGRect frame = statusLabel.frame;
frame.origin.y = firstField.origin.y + firstField.size.height + 5;
statusLabel.frame = frame;
对于以下所有视图都是一样的(我认为视图之间有5个像素的空间)