0

目前我正在为我的 UITableView 附件视图使用自定义图像。我使用此自定义图像将附件视图设置为图像视图。如果我使用 cell-arrow.png (15x15 px),它看起来很像素化。但是,如果我使用 cell-arrow.png (100x100 px),然后在代码中重新调整它的大小 [见下文],那么它看起来会好很多。为什么是这样?

跟进问题:

似乎已经确定使用 100x100px 图像然后将其缩小到 15x15 在设备上看起来更好(特别是使用视网膜,尚未完全测试它 < 4.0)。后续问题是我可以将图像设置为多大的最大尺寸以提高分辨率?例如,我测试了相同 cell-arrow.png 图像的 1024x1024 版本,它看起来与我重新调整 100x100 像素图像大小时相同。

*用于调整图像大小的代码:*

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 15.0f, 15.0f);
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [myImage setImage:[UIImage imageNamed:@"cell-arrow.png"]];

   // cellArrowNotScaled ends up making the image look very pixelated
   // UIImageView *cellArrowNotScaled = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell-arrow15.png"]];

    cell.accessoryView = myImage; //cellArrowNotScaled;
4

1 回答 1

2

通常,您应该使用与将在屏幕上使用的尺寸完全相同的图像。否则,您会将图像放大到软件,最终可能会出现未对齐的像素和锐利的线条变得模糊。请记住,从 iOS 4 开始,UIKit 中的所有测量值都以 UIKit 点为单位,在 Retina 显示器上 1pt = 2px,在非 Retina 显示器上,1pt = 1px。

因此,对于 15pt × 15pt 图像视图,如果您打算同时针对 Retina 和非 Retina 设备,则需要两个图像文件:

  • cell-arrow.png,一个 15px × 15px 的图片
  • cell-arrow@2x.png, 30px × 30px 图片

然后你调用[UIImage imageNamed:@"cell-arrow"](注意缺少扩展 - UIKit 会为你计算出来),操作系统将根据需要加载 1x 或 2x 版本。

于 2013-07-25T03:50:01.007 回答