看一个简单的视图控制器:
- (void)viewDidLayoutSubviews {
if (!self.viewHasAppeared) {
self.viewHasAppeared = YES;
self.testView.frame = CGRectMake(0, 0, 100, 100);
}
}
此代码应将视图的帧设置为0,0,100,100。但是有几个问题。首先,这个代码被调用两次,即使我正在设置一个标志,以便它只发生一次。
第一次,我看到了:
<UIView: 0x7e3a5240; frame = (0 0; 100 100); autoresize = RM+BM; layer = <CALayer: 0x7e3a4bc0>>
第二次,我看到了:
<UIView: 0x7e3a5240; frame = (80 142; 160 284); autoresize = RM+BM; layer = <CALayer: 0x7e3a4bc0>>
为什么框架会恢复到原始尺寸?
是的,我正在使用自动布局。但我不希望这种观点有约束。我试过这个:
[self.testView removeConstraints:self.testView.constraints];
但它没有帮助。