我有一个superview,它只是UIView
的一个子类,我有一个子视图,它是UIImageView
的子类,我想附加到superview的底部。
子视图的高度是固定的,但是超级视图的高度可能会发生变化。所以基本上,我希望在我以编程方式更改superview的高度时,子视图始终附加到superview的底部。
我是通过自动布局来实现的,
所以superview已经离开,顶部,右边连接到它的超级视图,并且固定高度(我将以编程方式更改它),这是它的约束,
子视图左,下,右连接到超视图,其固定高度,以及超视图高度应等于或大于子视图高度的另一个约束。
最后,当我点击最底部的按钮时,我会改变超视图的高度。这是代码,
- (IBAction)testButtonPressed:(id)sender {
[self.dragDownView setFrame:CGRectMake(CGRectGetMinX(self.dragDownView.frame), CGRectGetMinY(self.dragDownView.frame), CGRectGetWidth(self.dragDownView.frame), 100)];
}
然而,它没有做我想要的,这是将子视图附加到超级视图的底部。
在我改变身高之前:
更改身高后:
正如您所看到的那样,超视图的高度发生了变化,但子视图仍然保持了之前的状态。
任何可以帮助我的人?
答案 0 :(得分:1)
链接约束:
更新视图的框架如下:
self.heightConstraint.constant = 320;
[self.view layoutIfNeeded];
答案 1 :(得分:0)
当您使用Autolayout Constraint
时,您应该更新Constraint
而不是Frame
。
将@ Height constraint
与Superview
的{{1}}关联为@mistyhua建议。
现在当您更改IBOutlet
的{{1}}时,不要更改超级视图的框架,而是更改高度约束值。
Height