xvp*_*wer 5 xcode objective-c interface-builder ios
我刚刚注意到在尝试为新的iPad Retina显示屏更新我的应用程序时有趣的事情,Interface Builder中的每个坐标仍然基于原始的1024x768分辨率.
我的意思是,如果我有一个2048x1536的图像让它适合显示器上的整个屏幕,我需要将它的大小设置为1024x768而不是2048x1536.
我只是好奇这是故意的吗?我可以将Interface Builder中的坐标系切换为Retina特有的吗?这有点令人讨厌,因为我的一些图形在宽度或高度上都不是原始的2倍.我似乎无法设置1/2坐标数字,如1.5,它可以是Interface Builder内的1或2.
我现在应该只在代码中进行界面设计并忘记界面构建器吗?在两个方向上保持我的图形正好2倍?或者只是忍受它?
iOS 上的界面基于点,而不是像素。图像必须是原件尺寸的 2 倍。
点与像素 在 iOS 中,您在绘图代码中指定的坐标与底层设备的像素之间存在区别。当使用 Quartz、UIKit 和 Core Animation 等原生绘图技术时,您可以使用逻辑坐标空间指定坐标值,该空间以点为单位测量距离。该逻辑坐标系与系统框架用来管理屏幕上像素的设备坐标空间分离。系统自动将逻辑坐标空间中的点映射到设备坐标空间中的像素,但这种映射并不总是一对一的。这种行为导致了一个你应该永远记住的重要事实:
一个点不一定对应于屏幕上的一个像素。使用点(和逻辑坐标系)的目的是提供与设备无关的一致大小的输出。点的实际大小无关紧要。点的目标是提供一个相对一致的比例,您可以在代码中使用它来指定视图和渲染内容的大小和位置。点实际上如何映射到像素是由系统框架处理的细节。例如,在具有高分辨率屏幕的设备上,一个点宽的线实际上可能会在屏幕上产生两个像素宽的线。结果是,如果您在两个相似的设备上绘制相同的内容,而其中只有一个设备具有高分辨率屏幕,则内容在两个设备上的大小看起来大致相同。
在您自己的绘图代码中,大多数时候您都使用点,但有时您可能需要知道点如何映射到像素。例如,在高分辨率屏幕上,您可能希望使用额外的像素来提供内容的额外细节,或者您可能只想以微妙的方式调整内容的位置或大小。在 iOS 4 及更高版本中,UIScreen、UIView、UIImage 和 CALayer 类公开一个比例因子,告诉您该特定对象的点和像素之间的关系。在 iOS 4 之前,该比例因子被假定为 1.0,但在 iOS 4 及更高版本中,它可能是 1.0 或 2.0,具体取决于底层设备的分辨率。将来,其他比例因子也可能是可能的。
| 归档时间: |
|
| 查看次数: |
5747 次 |
| 最近记录: |