Xcode:如何调整像素中的组件高度和重量?

时间:2013-09-08 04:37:36

标签: objective-c xcode

今天是我使用Xcode的第一天,我已经成功创建了我的第一个单视图应用程序。

之前我没有关于Objective-C的背景知识,但我过去做过很多HTML + CSS。所以,当我设计我的第一个视图时,我首先在PSD上创建,然后我逐个剪切文本字段背景,按钮图像等。

但我今天发现的内容非常有趣......

我有一个483 x 82像素的PNG图像,但是当我将它用作文本字段背景时,我在尺寸检查器窗口中看到它有240 x 40.我不知道Xcode如何测量它,但我相信它不在像素中。令人惊讶的是,它与我在PSD文件中看到的大小完全相同。

我的问题是,如何为像素中的任何Xcode组件提供相同的宽度和高度?

谢谢......

PS:这是我的按钮的屏幕截图及其大小:

enter image description here

这就是我在Xcode上的内容,请参阅右侧检查器选项卡,我必须有240和40的宽度和高度,而不是483和82像素:

enter image description here

如果我将真实像素(483x82)放在检查器选项卡上,那么iPad屏幕上的按钮会非常大。

1 个答案:

答案 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像素,这看起来“大小相同”在非视网膜设备上。)

设置图像视图时,通常需要执行以下操作:

  1. 在您的项目中包含视网膜和非视网膜图像
  2. 将图像视图的磅值设置为您想要的颜色
  3. 将图片视图的contentMode设置为您想要的内容(您可能想要或不想保留默认设置)