0

有人能告诉我这两种加载方式的区别UIImageView吗?

iconView.image = [UIImage imageNamed:anIconFileName];

iconView.image = [UIImage imageWithContentsOfFile:anIconFileName];

我遇到了一种情况,当使用该imageNamed方法时,我有不确定的行为将 UIImageViews 作为子视图加载到UIScrollView. UIImages 会加载到模拟器中,但不会加载到使用 may iMac 的设备上。但是当我转移到我的 Mac Air 时,模拟器和设备上的一切都按预期工作了吗?通过进一步调查,我发现它何时起作用是不确定的。我试图加载 5 个 UIImageViews,有时我会得到 1 个或两个。加载任何内容似乎取决于我尝试加载的 *.png 文件的大小。

当我改变imageWithContentsOfFile方法时,一切都按预期工作......可靠。

UIImages 似乎并不大 - 每个大约 100K。任何想法都会有所帮助。

4

2 回答 2

0

第一件事 - 您是否检查了图像的名称,因为模拟器也会加载不区分大小写的图像,而设备不会加载该图像。

imageNamed- 此方法采用文件名。 imageWithContentsOfFile- 此方法采用该文件名的完整文件路径。

所以上面你提到的代码是虚拟代码或实际代码,如果那是实际代码,那么你需要确保imageNamed你必须传递文件名并且imageWithContentsOfFile你必须传递文件路径。

查看这篇文章了解这两种方法之间的区别 - http://www.jorambarrez.be/blog/2012/04/19/ios-imagenamed-vs-imagewithcontentsoffile/

于 2012-06-23T06:19:06.647 回答
0

这与 UIScrollView 无关,只需检查您将图像导入 Xcode 的方式。您应该添加文件选择选项:

为任何添加的文件夹创建组。

这样文件夹将显示为黄色(而不是蓝色),并且 imageNamed 可以正常工作。

于 2012-06-23T08:03:11.870 回答