2011-12-06 38 views
2

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

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

我不知道我应该如何加载视网膜图像到标签栏,并使其看起来很正常。

更新:

下面是我用从添加的每个视图控制器加载图像的TabBar代码:

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

如果图像有没关系@ 2倍或不是因为我手动选择正常或视网膜图像。

+0

您目前如何加载并分配图像到标签栏的形象呢? – Till

+0

检查你的图像的DPI是好的 – Denis

+0

你的视网膜图像的命名与普通图像相同,但末尾带有@ 2x后缀? – Mutix

回答

2

我自己没有遇到过这个问题,但是我会在创建图像后立即设置一个断点。使用调试器检查新图像的scale属性。我想你会发现scale设置为1.0,但是你的高分辨率图像应该有scale设置为2.0。有三种方式(我知道)可以实现这一点:

  • 用“@ 2x”后缀命名文件;
  • 适当地为图片设置'dpi'属性;
  • 创建-initWithCGImage:scale:orientation:+imageWithCGImage:scale:orientation:
+1

我用+ imageWithCGImage,它的工作完美。非常感谢。 –