这是我第一次尝试为视网膜或非视网膜设备设计两个版本的图像,所以我怀疑我做错了,但我创建了两个版本的图像,一个是302x193,另一个是604x386。它们分别命名为“displayCell1.png”和“displayCell1@2x.png”。
我还为@ 2x图像添加了水印,以确保我能够知道这是否是正在显示的图像。据我了解,我的视网膜设备(或iPhone 4模拟器)应自动检测@ 2x版本的存在并显示。但是,以下代码仅导致显示标准分辨率版本。任何帮助将不胜感激:
- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
static UIImage *bgImage = nil;
if (bgImage == nil) {
bgImage = [[UIImage imageNamed:@"displayCell1.png"] retain];
}
cell.backgroundView = [[[UIImageView alloc] initWithImage:bgImage] autorelease];
cell.backgroundView.contentMode = UIViewContentModeTopLeft;
}
我也只用imageNamed:@"displayCell1"
尝试过,但也无济于事。
我可以根据需要添加更多细节。谢谢!
修改
我现在已经为两张图片添加水印,以确保我知道我在看什么。清理目标没有帮助,图像 包含在.app包中。
这是第一张图片:
尺寸为302x193
以下是图片二:
尺寸为604x386
这就是我在上面的代码运行时得到的结果(请注意,单元格高度被调高,因此屏幕上只显示一个单元格):
我在这里很难过。
答案 0 :(得分:3)
在Finder中打开已编译的.app
包(右键单击它并选择Show Package Contents)并确保图像的两个版本都在那里。如果Xcode忘记复制文件,您可能必须清理构建文件夹并重新编译。
答案 1 :(得分:1)
代码对我来说很好。
检查包中是否包含@ 2x图像。
答案 2 :(得分:0)
在随意使用模拟器设置后,我发现硬件>设备已设置为iPhone
,而不是iPhone (retina)
这解决了模拟器的问题。不幸的是,尽管它现在也在设备上工作,我还不完全知道是什么解决了设备的问题,因为我一直在尝试的任何调整都可能是关键,但是在回到设备之前,我只是在模拟器上尝试它们。
因此,对于将来浏览此内容的任何人,我会说尝试所有建议的内容。所有这些似乎都是可靠的推荐。
答案 3 :(得分:0)
我在xCode 5上遇到了类似的问题,并且在组织者的帮助下删除了派生数据并为我做了。