我尝试将setFrame
用于我的UIView,但我也使用了自动布局。问题是我可以为UIView设置setFrame,尽管它使用了setFrame(x, y, w, h)
。我意识到因为自适应布局否认它,所以我可以在运行时首先为自适应布局适应它设置setFrame吗?谢谢
答案 0 :(得分:0)
如果您尝试将自适应布局与自动布局一起使用,则不应考虑帧。
但是,对于边缘情况,自动布局引擎允许您在计算所有元素的位置后进行“微调”。您可以在UIView
代码中执行的操作是设置布局约束
- (void)updateConstraints {
[self applyMyViewConstraints];
[super updateConstraints];
}
系统更新所有约束后,它将在您的UIView中调用layoutSubviews
。在此阶段,来自相关项目的所有帧都被设置并且是最终的。您可以覆盖所需的自动布局框架。
- (void)layoutSubviews {
[super layoutSubviews];
self.myView.frame = CGRectMake(0, 0, 10, 200);
}