这是我第一次尝试为视网膜或非视网膜设备设计两个版本的图像,所以我怀疑我做错了什么,但我创建了两个版本的图像,一个是 302x193,另一个是 604x386。它们分别命名为“displayCell1.png”和“displayCell1@2x.png”。
我还为 @2x 图像添加了水印,以确保我可以知道显示的是不是那个图像。据我了解,我的 Retina 设备(或 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
下面是我使用上面的代码运行时得到的结果(请注意,单元格高度已调高,因此屏幕上只显示一个单元格):
我在这里很困惑。
最佳答案
在 Finder 中打开已编译的 .app
包(右键单击它并选择显示包内容)并确保图像的两个版本都存在。如果 Xcode 只是忘记复制文件,您可能需要清理构建文件夹并重新编译。
关于iphone - @2x 视网膜图像未显示在视网膜设备 (iPod touch) 或模拟器 (iPhone 4) 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8845865/