我正试图通过纵向和横向视图来确定自动布局约束。在肖像中,我有一个320x200像素的容器视图(但任何视图都可以)。当手机旋转到横向时,我希望该容器视图以480x320填充屏幕。
现在我完全在IB中这样做了,我现在正试图保持这种状态。当我试图将视图设置为我想要的大小调整时,我就会出现与蓝色和紫色约束图标一起出现的问题。
我观看过WWDC自动布局视频并在其他视图中使用自动布局,但我无法让这种看似简单的变化发生。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:2)
在2012 WWDC视频228 - 掌握自动布局中,他展示了类似的内容
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];
}
}
试一试,看看你是否有任何模棱两可的布局。当然,在轮换之后这样做,一切都不对。
如果这不会产生任何结果,那么只需在特定视图上使用constraintsAffectingLayoutForAxis方法,您就会看到不允许更改的约束。
最有可能的是,您需要降低优先级过高的约束。
答案 1 :(得分:0)
我不得不使用不平等。例如,纵向的文本区域宽度需要为100,但是横向宽度需要> 100,因此它可以拉伸。其他约束已经到位,可以将它拉到我身边。我还启用了横向模式。当我现在旋转时,我的4行文字非常巧妙地回流到2行。