【问题标题】:Considerations for making 3rd-generation iPad applications制作第三代 iPad 应用程序的注意事项
【发布时间】:2012-03-15 23:25:53
【问题描述】:
我目前正在制作一个 iPad 应用程序,其中视图是为 iPad 2 分辨率创建的。不过现在 iPad 出了双倍分辨率,我也需要支持一下。请直接在应用程序中进行哪些更改,以便同时支持 iPad 2 和第三代 iPad。我能想到的唯一方法是以编程方式控制视图框架并布置子视图,这将是一场噩梦:-)。如果有更好、更可扩展的方法,请提供帮助。
非常感谢您提前提供的所有帮助。
【问题讨论】:
标签:
objective-c
ios
cocoa-touch
ipad
【解决方案1】:
您不必更改视图的框架。唯一要做的就是添加您使用的图像的双分辨率版本。
因此,如果您有一个名为 MyImage.png 且大小为 100x100 的图像,请添加一个名为 MyImage@2x.png 且大小为 200x200 的新图像。
没有可更改的代码。如果您遵守为图像名称添加后缀@2x 的惯例,则将根据设备的屏幕分辨率使用正确的图像(标准或高分辨率)。
最后,不要忘记使用correct dimensions 为新 iPad 添加图标和启动图像。
【解决方案2】:
在名为“View Programming for iOS: View Geometry and Coordinate Systems”的文档中,您会发现:
查看几何和坐标系
UIKit 中默认坐标系的原点在左上角
角并具有从原点向下和向右延伸的轴
观点。坐标值使用浮点数表示,
允许内容的精确布局和定位无论如何
底层屏幕分辨率。图 1-4 显示了这个坐标
系统相对于屏幕。除了屏幕坐标
系统、窗口和视图定义了它们自己的局部坐标系
允许您指定相对于视图或窗口的坐标
原点而不是相对于屏幕
换句话说,您没有以像素为单位编程视图尺寸,并且您现有的尺寸会自动转换以匹配底层屏幕分辨率
此外,使用视网膜显示器,您可以提供两倍于原始非视网膜显示器分辨率的图像文件,并在图像名称中使用@2x 命名后缀。