http://segmentfault.com/q/1010000002545515
分为兼容模式和高分辨率模式。
兼容模式
当你的 app 没有提供 3x 的 LaunchImage 时,系统默认进入兼容模式,大屏幕一切按照 320 宽度渲染,屏幕宽度返回 320;然后等比例拉伸到大屏。这种情况下对界面不会产生任何影响,等于把小屏完全拉伸。但是建议不要长期处于这种模式下,否则在大屏上会显得字大,内容少,容易遭到用户投诉。
高分辨率模式
当你的 app 提供了 3x 的 LaunchImage 时,系统进入高分辨率模式,屏幕宽度返回实际的宽度,按照实际的屏幕宽度渲染。这时候你的界面变化取决于实际的写法。
- 用 autoLayout:屏幕宽度会变,里面的各个控件按约束变化。
- 用 xib,不用 autoLayout:根据 autoResizingMask 的设置,每个控件可能会拉伸,也可能不变。
- 纯代码布局:根据代码具体的写法而定。
其实,出了上面说的3x图,使用launch xib 登录界面,或是指定了3x的登录图片,也会导致系统识别除高分辨率模式。