如何为iphone 5和iphone 6创建不同的约束

时间:2015-05-07 03:12:25

标签: ios ios8 autolayout iphone-5 iphone-6

是否可以在不影响iPhone 6的情况下专门为iPhone 4s和5s创建约束?

prototype

请参阅上图:

scrollview的高度与内容视图的高度相同。我改变了乘数,使其达到了细胞实际高度的40%。

单元格是固定高度,与主窗口的高度相同。

如果您可以在左侧预览中看到,则5s和4s设备实际上没有空间。所以我想知道如何处理这个设计问题。

3 个答案:

答案 0 :(得分:4)

请尝试使用窗口视图的所有视图使用宽高比。它将计算屏幕大小,它将自动对齐以满足您的约束。我有同样的问题,我通过设置宽高比来克服。

请查看此链接http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/

答案 1 :(得分:2)

不幸的是你不能这样做。您的问题的解决方案是更改约束的constant。因此,我建议您检测用户的设备see here how to do it并更改约束值,如下所示:

-(void)viewWillLayoutSubviews {
    [super viewWillLayoutSubviews];

    if (IS_IPHONE_6) {
        self.verticalConstraintOfButtonToTop.constant = 22;

    } else if (IS_IPHONE_5) {
        self.verticalConstraintOfButtonToTop.constant = 17;
    }
}

或者您可以创建单独的故事板并使用它。

此外,您可以使用Size Classes为iPhone和iPad或纵向/横向模式创建通用故事板。

答案 2 :(得分:0)

我真的不明白你的问题。也许这会有所帮助:

约束与其他IB项目一样,因为它们可以是IBOutlets。只需从IB对象轮廓中的约束拖动到关联的视图控制器。在视图控制器中,您可以根据设备类型在代码中调整其值。

希望这有帮助。