今天是我使用Xcode的第一天,我已经成功创建了我的第一个单视图应用程序。
之前我没有关于Objective-C的背景知识,但我过去做过很多HTML + CSS。所以,当我设计我的第一个视图时,我首先在PSD上创建,然后我逐个剪切文本字段背景,按钮图像等。
但我今天发现的内容非常有趣......
我有一个483 x 82像素的PNG图像,但是当我将它用作文本字段背景时,我在尺寸检查器窗口中看到它有240 x 40.我不知道Xcode如何测量它,但我相信它不在像素中。令人惊讶的是,它与我在PSD文件中看到的大小完全相同。
我的问题是,如何为像素中的任何Xcode组件提供相同的宽度和高度?
谢谢......PS:这是我的按钮的屏幕截图及其大小:
这就是我在Xcode上的内容,请参阅右侧检查器选项卡,我必须有240和40的宽度和高度,而不是483和82像素:
如果我将真实像素(483x82)放在检查器选项卡上,那么iPad屏幕上的按钮会非常大。
答案 0 :(得分:7)
首先,关于iOS中非视网膜和视网膜图像的一般背景知识:
iPhone 3GS及更早版本,iPad 1,iPad 2和iPad mini(仅举几例)使用非视网膜图像。也就是说,您提供的图像将以相同的宽度和高度显示(以像素为单位)。
iPhone 4+和“新iPad”(iPad 3)使用视网膜图像。也就是说,您提供的图像应两次宽度和高度(以像素为单位),如您在屏幕上显示的那样。
这导致了iOS应用中积分的概念:
1点 =非视网膜设备上的1像素 或视网膜设备上的2像素 。
每当您在Interface Builder(IB)中设置尺寸时,实际上是设置点尺寸,而不是像素。
此外,您应该始终为非视网膜和视网膜版本提供两个图像。您通过将视网膜版本命名为非视网膜版本然后附加@ 2x来表示视网膜版本。
E.g。
my_awesome_image.png // non-retina image
my_awesome_image@2x.png // retina image
通过这样做,操作系统将在视网膜设备上自动为您选择正确的图像。
既然我们对这个概念很清楚,那么这就是你在IB中实际做的事情:
您已将图像视图的宽度和高度设置为240 pt x 40 pt,默认情况下,图像视图的contentMode
属性设置为UIViewContentModeScaleToFill
(因此,您可以快速调整指定的大小图像填充你告诉它的大小...所以图像将在视网膜设备上显示为480像素×80像素 - 但请记住,由于所述2倍像素密度和240像素×40像素,这看起来“大小相同”在非视网膜设备上。)
设置图像视图时,通常需要执行以下操作: