iOS :自适应视图大小以编程方式取决于 iphone 模型

iOS : Adaptative view size programmatically depending on iphone model

我正在以编程方式创建视图,它们像甲板一样相互堆叠。我希望它们具有与屏幕尺寸相关的特定尺寸。

我如何调整每个视图的框架,以便它们均匀布局并适应主屏幕尺寸(例如 iPhone 4)或任何其他 iPhone 屏幕尺寸?

现在,我有这段代码:

var frame = CGRectMake(0, 0, 300, 435)
switch [iphone model] {
  case [iphone4]:
    frame.size.height = frame.size.height * [sizeFactor]
    frame.size.width = frame.size.width * [sizeFactor]
  case [iphone5]:
    [...]
}

谢谢

您可以使用它在运行时获取 window 大小:

CGRect windowRect = [[UIScreen mainScreen] bounds];

您必须手动实现您的布局机制。

如果父视图使用

自动布局

1) 生成您的观点

2) 生成约束(对于您需要的每个视图 - 宽度、高度、边距......或一些更高级的 "equality of sizes" 约束),这些约束将从 helper 获取实际常量 属性 值方法。

3) 辅助方法将根据屏幕比例和可见视图数计算特定的高度、宽度或任何其他常量。

4) 对视图应用约束


SPRINGS & STRUTS(布局视图的旧方法)

1) 生成您的观点

2) 为它们计算框架 ...对于框架成员值,使用来自辅助方法的动态计算值

3) 实施将使用屏幕尺寸的辅助方法..与自动布局相同 3)

4) 为所有视图设置正确的自动调整掩码。