iOS 不同设备尺寸的自动布局约束值

iOS Auto Layout constraints values for different devices sizes

我使用故事板来布置我的观点。我用约束定位视图。我有一个关于调整约束的问题。如何在不编程 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;

这种处理不同设备约束的方法是否正确?

通常您可以使用 class 尺寸使用常见的 600x600 来实现,您还可以构建一个通用 (iPad/iPhone) 界面。你可以找到大量的指南来实现它。根据您想实现的目标(细节不佳,更多文字..),并且可能的问题之一是正确处理方向布局(landscape/portrait),因为在大型设备中很多时候您必须将 views/objects.

有时根据不同的设备尺寸实现不同的 xib 会更好(为了不丢失细节、图像质量……),尤其是当您必须处理自定义 tableViewCells、imageViews 时。

底部有 iPhone 个不同的维度:

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

只需使用 IBInspectable 设置每个设备大小的常量,无需任何代码