我对使用视网膜和非视网膜显示管理不同大小的图像感到困惑。
我在Storyboard中添加了一个自定义按钮并添加了一些文本,然后添加了backgroundimage,这是一个在Illustrator中完成的向量(宽度:630 /高度:130):
UIImage *img = [UIImage imageNamed:@"iPad1_orange_button.png"];
[myButton setBackgroundImage:img forState:UIControlStateNormal];
按钮显示:
...按钮出来很小。
我有另一张带有@ 2x视网膜的图像,但尺寸相同。
我的问题是如何根据图像尺寸管理按钮的大小。我需要手动设置按钮的大小吗?
另外,当我在Illustrator中创建一个按钮,其像素大小与我在XCODE中使用的按钮相同并将其导出为.png时,将其添加到XCODE并将其拖到Storyboard中它会非常大。
答案 0 :(得分:1)
快速澄清一下:
故事板尺寸为非(以像素为单位)。
iPhone 4S的640x960(x,y)@ 326ppi。 xCode尺寸为320by460(x,y)。只需取数字并转换em即可获得合适的像素大小。
IE:如果你想要一个100宽和100高的故事板按钮,你要创建一个100 *(640/320)px宽和100 *(960/460)px高的图像(我相信我的数学是对的......)。
根据您正在构建的内容,您需要使用不同的图像来满足不同的设备。
另一方面,术语视网膜显示并未指定px的明确标准px。如果我没记错的话,苹果公司创造的术语基本上意味着屏幕有足够的px,人眼(因此视网膜)将无法看到锯齿状。
类似于英特尔对Ultrabook一词的创造;没有 REAL 规范/上限只是一种营销策略。
答案 1 :(得分:0)
考虑尺寸以及您将像素视为“密度无关像素”的内容。在位置和尺寸方面,您始终以原始尺寸工作,但操作系统可以为您处理不同的分辨率。现在我们有原始尺寸和Retina,它的密度是X2,但这可能会改变。您永远不需要手动更改给定设备的分辨率。
答案 2 :(得分:0)
这很简单:
UIImage * img = [UIImage imageNamed:@“iPad1_orange_button”];
*注意我删除了文件扩展名(.png) - 这指示UIImage选择适当的分辨率版本,常规版本或@ 2x。 iOS将以与普通res图像相同的帧大小显示图像的2x版本。很简单。