ios - 启动屏幕 xib

标签 ios autolayout

我找到了一个简单的自适应iPhone4/4s,5,6,6P尺寸的方法。

  1. 删除 ProjectTagets->App Icons andLaunch Images 中的 LaunchScreen.xib Delete LaunchScreen.xib

  2. 添加默认图片(iPhone4/4s,5)大小

在那之后,我可以适应所有 iPhone 尺寸,即使我没有使用过 autolayout

问题:

  1. 为什么我可以在没有使用自动布局的情况下适应它?

  2. 这样做有什么害处?

  3. 自适应所有 iPhone 尺寸的最佳方法是什么?

最佳答案

  1. AutoLayout 是一个布局引擎,它与设备的分辨率无关。当 iOS 启动您的应用程序时,它会检查应用程序是否具有针对特定设备(iOS 8 之前)的启动图像或启动屏幕 xib 文件(iOS 8)。如果找到它,iOS 将以当前设备的原始分辨率运行您的应用程序。

  2. 因为启动屏幕xib使用了size class,所以你可以只使用一个启动屏幕xib来采用所有不同分辨率的设备。但由于启动屏幕仅适用于 iOS 8,如果您使用它来支持不同的分辨率,则必须确保您只支持 iOS 8。如果您想支持较旧的 iOS 版本,则不能使用启动屏幕 xib。

  3. 如果您只想让您的应用程序在 iOS 8 设备上运行,则可以使用启动屏幕 xib。但如果不是这种情况,您应该使用旧的启动图像。

看到这个问题:

How to support various iphone screen sizes as of 2014?

还有这个

iPhone 6 Plus resolution confusion: Xcode or Apple's website? for development

关于ios - 启动屏幕 xib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27500624/

相关文章:

ios - iOS 中用于交互元素的动态类型

ios - 手动调用 updateViewConstraints 是个好主意吗?

ios - 尾随约束缺失错误

macos - NSTableView reloadData(forRowIndexes :columnIndexes:) breaks autolayout

ios - 检测哪个特定的 map 图钉被触摸

ios - GMT 与夏令时更改的本地时间转换

ios - iOS 中的搜索文本框区分大小写

ios - 在 UITableView 上滑动删除以使用 UIPanGestureRecognizer

swift - 无法以编程方式调整约束

ios - 使用 AutoLayout 移动 UIView 的位置