我正在尝试通过纵向和横向 View 找出自动布局约束。在纵向中,我有一个 320x200 像素的容器 View (但任何 View 都可以)。当手机旋转至横向时,我希望容器 View 以 480x320 的尺寸填满屏幕。
现在我完全在 IB 中完成这件事,并且目前正在努力保持这种状态。当我尝试将 View 设置为按我希望的方式调整大小时,我很难应对出现的蓝色和紫色约束图标。
我看过 WWDC 自动布局视频,并且在其他 View 中也可以使用自动布局,但我就是无法实现这种看似简单的更改。
如有任何帮助,我们将不胜感激。谢谢。
最佳答案
在2012年WWDC视频228 - Mastering Auto layout中,他展示了这样的东西
for (UIView *aView in [yourViewController subviews]) {
if ([aView hasAmbiguousLayout]) {
NSLog(@"View Frame %@", NSStringFromCGRect(aView.frame));
NSLog(@"%@", [aView class]);
NSLog(@"%@", [aView constraintsAffectingLayoutForAxis:1]);
NSLog(@"%@", [aView constraintsAffectingLayoutForAxis:0]);
[aView exerciseAmbiguityInLayout];
}
}
尝试一下,看看是否有任何不明确的布局。当然,在旋转之后这样做,一切都不正确。
如果这不会产生任何结果,那么只需在您的特定 View 上使用constraintsAffectingLayoutForAxis 方法,您应该会看到约束不允许它更改。
很可能存在一个优先级太高的约束,您需要减少该约束。
关于iphone - 任何自动布局大师能够启发我有关约束和旋转的知识吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11943672/