使用自适应布局时,我可以为UIView设置框架

时间:2015-03-17 03:27:11

标签: iphone ios8

我尝试将setFrame用于我的UIView,但我也使用了自动布局。问题是我可以为UIView设置setFrame,尽管它使用了setFrame(x, y, w, h)。我意识到因为自适应布局否认它,所以我可以在运行时首先为自适应布局适应它设置setFrame吗?谢谢

1 个答案:

答案 0 :(得分:0)

如果您尝试将自适应布局与自动布局一起使用,则不应考虑帧。

但是,对于边缘情况,自动布局引擎允许您在计算所有元素的位置后进行“微调”。您可以在UIView代码中执行的操作是设置布局约束

- (void)updateConstraints {
   [self applyMyViewConstraints];
   [super updateConstraints];
}

系统更新所有约束后,它将在您的UIView中调用layoutSubviews。在此阶段,来自相关项目的所有帧都被设置并且是最终的。您可以覆盖所需的自动布局框架。

- (void)layoutSubviews {
    [super layoutSubviews];
    self.myView.frame = CGRectMake(0, 0, 10, 200);
}