iOS Auto Layout约束不同设备大小的值

时间:2016-05-18 19:07:31

标签: ios swift nslayoutconstraint

我使用故事板来布局我的观点。我用约束来定位视图。我有一个关于调整约束大小的问题。如何在不编程if / else循环的情况下,如何为不同的设备大小设置不同的约束常量。有没有办法在故事板中设置它?我对父布局有一个顶级约束,例如,常数值为10.这对于iPhone 5屏幕是可以的,但在iPhone 6/6 plus屏幕上它应该高于10.因此应该计算约束。目前我计算出这样的比例因子:

    let bounds = UIScreen.mainScreen().bounds;
    let width = bounds.size.width; 
    let scaleFactor = width/320; // 320 because base design was created for iPhone 5

   // calc top constraint connect from storyboard
  self.topConstraintView.constant = self.topConstraintView.constant * scaleFactor;

处理不同设备上的约束是否正确?

2 个答案:

答案 0 :(得分:3)

如何使用DeviceLayout https://github.com/cruisediary/DeviceLayout

使用IBInspectable设置每个设备大小不变,无需任何代码

enter image description here

enter image description here

答案 1 :(得分:1)

通常,您可以使用常规 600x600 使用班级大小,并且您还可以构建通用(iPad / iPhone)界面。你可以找到大量的指南来实现它。取决于你想要实现什么(不良细节,更多文字..),以及可能的问题之一,它是正确处理方向布局(横向/纵向),因为在大型设备中,你必须多次对视图/对象进行居中

有时候更好,(不要丢失细节,图像质量......)根据不同的设备尺寸实现不同的xib,特别是当您需要使用自定义tableViewCells,imageViews时。

这里底部有iPhone的不同尺寸:

enter image description here