iPad 和 iPhone 上的自动布局?

Posted

技术标签:

【中文标题】iPad 和 iPhone 上的自动布局?【英文标题】:AutoLayout on iPad and iPhone? 【发布时间】:2014-11-28 20:47:27 【问题描述】:

我正在使用 swift 在 Xcode 6 上构建一个应用程序,并且仅适用于 iPhone 和 iPod,而不适用于 iPad。有人告诉我,即使您只是为 iPhone 构建一个应用程序,Apple 也要求该应用程序在 iPad 上流畅运行,否则他们可能会拒绝它,直到您使其适用于通用屏幕尺寸。我非常了解自动布局,但我有一个问题;假设我在紧凑的宽度和常规高度的屏幕尺寸上制作所有按钮、标签和元素(适用于所有纵向 iPhone)并编写我的代码,以便它在该屏幕尺寸上工作......我只需要做同样的事情吗?常规宽度和常规高度屏幕尺寸的按钮、标签和元素,我的应用程序仍然可以完美运行,还是我必须用新的按钮插座和元素名称重写整个代码?

【问题讨论】:

【参考方案1】:

我不知道有任何规则规定您必须让您的应用在所有设备变体上都能正常工作。无论哪种方式,您仍然可以以编程方式调整任何可能无法通过自动布局调整您喜欢的方式的视图对象。商店里有很多应用程序严格只作为 iPhone/iPod 提交。

您也没有理由不能对单独的布局使用相同的 IBAction 或 IBOutlet 代码。无需复制任何代码。

有一个警告。如果您提交“通用”应用程序,并且在以后决定将应用程序限制为仅限 iPhone(或仅限 iPad),则您需要将其作为新应用程序提交。 Apple 不允许您在版本已发布后更改此设置。

【讨论】:

【参考方案2】:

应用的构建设置只能是 iPhone、iPad 和 Universal。应该注意的是,iPhone 应用程序仍然可以在 iPad 上下载,只是它们不会出现在 iPad App Store 的相同位置。如果您没有任何 iPad 特定设置,它只是缩放应用程序以适应整个屏幕,而不是进行原生 iPad 布局。我相信它可以扩展 3.5 英寸版本的应用程序。

自动布局非常有用,并且在考虑不同的屏幕尺寸时提供了大量的多功能性,这比以往任何时候都更加重要。

Apple 为我们配备的另一个工具是能够为 iPhone 或 iPad 创建单独的笔尖。例如,如果您有 MyViewController.h、-.m 和 -.xib,您可以使用名称的扩展名,以便应用程序为该设备加载该名称。语法为 MyViewController~iphone.xib 和 MyViewController~ipad.xib。您无需以编程方式或在构建设置中执行任何操作即可使其正常工作。只需正确设置名称并确保所有插座都已连接。除非您以编程方式修改布局,否则不会有任何问题,并且您的所有代码都可以正常工作。

实际上,如果在 iPad 上运行的通用应用程序或 iPhone 应用程序上,总是会检查这一点 - 如果设备是 iPad,它会查找 ~ipad 版本的笔尖。找不到一个,它会加载~iphone 或唯一可用的。

【讨论】:

以上是关于iPad 和 iPhone 上的自动布局?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自动布局为 UIView 提供两种尺寸(适用于 iPhone 和 iPad)?

Swift Xcode 自动布局约束仅针对 iphone 6 plus 和 ipad

具有自动布局左边距的 UITableViewCell 在 iPhone 和 iPad 上不同

具有自动布局的 UITableView 中的动态单元格高度

iPad屏幕不支持自动布局

iPad 的自动布局问题