ios - 不同设备屏幕尺寸

标签 ios objective-c

我正在学习 iOS 开发,我对这些设备尺寸有点困惑。 当我在模拟器中测试时,我有这样的选项:

Hardware -> Device -> iPhone
Hardware -> Device -> iPhone (Retina 3.5 inch)
Hardware -> Device -> iPhone (Retina 4 inch)

我应该针对所有这三个选项测试我的应用吗?各个屏幕尺寸对应哪款手机? (例如,当我们测试 3.5 英寸时,这意味着什么,它适合哪款 iPhone?)。

最佳答案

除非您的 iPhone 5 的 UI 与之前的 iPhone 完全不同,否则您实际上不需要太担心屏幕尺寸。每当您在 iOS 中执行任何与任何类型的自定义渲染有关的操作时,您都以点为单位指定坐标,而不是像素。 iOS 会根据您的设备自动计算像素值。

在图像方面,您唯一需要关心的是视网膜显示。为此,您只需要一个双倍大小的图像,末尾带有@2x。例如,对于预视网膜手机,您可能有一个名为 image.png 的 100x100 像素图像。然后,您需要一个名为 image@2x.png 的 200x200 像素。 iOS 会在需要时自动加载 Retina 版本。

如果您确实想要为 iPhone 5 使用不同的 UI,那么解决方案 @user2277872 会很好。

您绝对应该考虑使用自动布局,因为这使许多事情变得非常容易,特别是如果您不打算为 iPhone 5 使用不同的 UI,因为它会根据您给它的一组预定义规则。例如,您可能希望按钮始终距离屏幕底部 20 像素。无论屏幕是 4 英寸还是 3.5 英寸,自动布局都会为您执行此操作。

关于ios - 不同设备屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17941391/

相关文章:

ios - iOS 应用程序文件是否可以在应用程序仍在审核中时更新?

ios - 如何使 iOS 7 内置的 iOS 6 兼容应用程序?

iphone - 单击 uitableview 中的单元格时如何获取下一个 View 上的单元格文本

objective-c - NSSplitView 分隔线的起始位置

ios - UITextView 从文本的底部或中间开始

ios - 在 Objective-C 中使用 NSPredicate 过滤自定义数据类的数组

ios - 根据 NSArray 元素对 NSDictionary 键进行排序

ios - 在 Objective-C 中向不同对象发送消息的最佳方式

ios - Xcode 8,iOS 8 模拟器崩溃 : "dyld: lazy symbol binding failed: Symbol not found: _objc_unsafeClaimAutoreleasedReturnValue"

ios - SwiftUI ZStack 对齐方式很奇怪