将视网膜图像动态加载到标签栏

时间:2011-12-06 14:24:43

标签: iphone ios uitabbar

我在标签栏中使用的图片是动态的,我将它们从互联网上加载。我检测到我是否在视网膜上显示,并下载正确的图像并使用它们初始化标签栏。

正常图像正常工作。我的问题是视网膜图像。它们以大尺寸显示,大于标签栏,因此它们没有完全显示。

我想知道如何将视网膜图像加载到标签栏中并使它们看起来正常。

更新

以下是我用于将图像从每个视图控制器加载到标签栏的代码:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithString:@"1.png"]];
    UIImage* image = [UIImage imageWithContentsOfFile:path];

图像是否有@ 2x并不重要,因为我手动选择普通或视网膜图像。

1 个答案:

答案 0 :(得分:2)

我自己没有遇到过这个问题,但我首先要在创建图像后设置一个断点。使用调试器检查新映像的scale属性。我想您会发现scale设置为1.0,但您的高分辨率图片应将scale设置为2.0。有三种方法(我知道)可以实现这一目标:

  • 使用“@ 2x”后缀命名文件;
  • 正确设置图片的'dpi'属性;
  • 使用-initWithCGImage:scale:orientation:+imageWithCGImage:scale:orientation:
  • 创建图片