任何人都能自动布局大师能够启发约束和旋转吗?

时间:2012-08-13 23:26:41

标签: iphone ios xcode autolayout

我正试图通过纵向和横向视图来确定自动布局约束。在肖像中,我有一个320x200像素的容器视图(但任何视图都可以)。当手机旋转到横向时,我希望该容器视图以480x320填充屏幕。

现在我完全在IB中这样做了,我现在正试图保持这种状态。当我试图将视图设置为我想要的大小调整时,我就会出现与蓝色和紫色约束图标一起出现的问题。

我观看过WWDC自动布局视频并在其他视图中使用自动布局,但我无法让这种看似简单的变化发生。

任何帮助将不胜感激。谢谢。

2 个答案:

答案 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行。