0

我对使用视网膜和非视网膜显示器管理不同尺寸的图像有点困惑。

  1. 我在 Storyboard 中添加了一个自定义按钮并添加了一些文本,然后添加了 backgroundimage,这是在 Illustrator 中完成的矢量(宽度:630 / 高度:130):

    UIImage *img = [UIImage imageNamed:@"iPad1_orange_button.png"];
    [myButton setBackgroundImage:img forState:UIControlStateNormal];
    

按钮显示:

在此处输入图像描述

...按钮出来非常小。

我有另一张带有@2x 的视网膜图像,但尺寸相同。

我的问题是如何根据图像大小管理按钮的大小。我需要手动设置按钮的大小吗?

此外,当我在 Illustrator 中创建一个与我在 XCODE 中使用的按钮具有相同像素大小的按钮并将其导出为 .png 时,将其添加到 XCODE 并将其拖到 Storyboard 中,它会变得非常大。

4

3 回答 3

1

快速澄清一下:

故事板尺寸不是像素。

iPhone 4S 的分辨率为 640x960(x,y) @ 326ppi。xCode 尺寸为 320×460(x,y)。只需取数字并转换 em 以获得适当的像素大小。

IE:如果您想要一个 100 宽和 100 高的故事板按钮,您需要创建一个 100*(640/320) 像素宽和 100*(960/460) 像素高的图像(我相信我的数学是正确的...)。

根据您正在构建的内容,您需要不同的图像来满足不同的设备。

另一方面,视网膜显示一词并没有指定一个逐像素的明确标准。如果我没记错的话,这是苹果创造的一个术语,基本上意味着屏幕有足够的像素,人眼(因此视网膜)将无法看到锯齿。

类似于英特尔创造的“超极本”一词;没有真正的规格地板/天花板只是一种营销策略。

于 2012-08-31T21:14:26.377 回答
0

考虑尺寸以及您将像素视为“密度无关像素”的内容。当涉及到位置和大小时,您始终以原始大小工作,但由操作系统为您处理不同的分辨率。现在我们有原始尺寸和密度为 X2 的 Retina,但这可能会改变。您永远不需要手动更改给定设备的分辨率。

于 2012-08-31T22:06:34.913 回答
0

这很简单:

  • 使按钮框架为正常 res 图像的大小
  • 当您使用 UIImage imageNamed 加载图像时:这样做

UIImage *img = [UIImage imageNamed:@"iPad1_orange_button"];

*注意我删除了文件扩展名 (.png) - 这指示 UIImage 选择合适的分辨率版本,常规或@2x。iOS 将以与普通 res 图像相同的帧大小显示图像的 2x 版本。很简单。

于 2013-01-11T18:22:27.183 回答