我尝试在我的UIView中使用setFrame,但我也在它上面使用了自动布局。问题是我可以为UIView使用setFrame,尽管我使用的是setFrame(x, y, w, h)。我意识到因为自适应布局拒绝了它,所以我可以在自适应布局适配之前先在运行时为它执行setFrame吗?谢谢
发布于 2015-03-17 12:45:32
如果您尝试将自适应布局与自动布局一起使用,则不应考虑框架。
然而,对于边缘情况,自动布局引擎允许您在计算完所有元素的位置后进行“微调”。您可以在UIView代码中执行以下操作:设置布局约束
- (void)updateConstraints {
[self applyMyViewConstraints];
[super updateConstraints];
}在系统更新所有约束之后,它将在您的UIView中调用layoutSubviews。在这个阶段,来自相关项目的所有框架都已设置并最终完成。您可以覆盖所需的自动布局框架。
- (void)layoutSubviews {
[super layoutSubviews];
self.myView.frame = CGRectMake(0, 0, 10, 200);
}https://stackoverflow.com/questions/29090806
复制相似问题