IKImageBrowserView缩略图问题

时间:2010-08-30 01:15:10

标签: objective-c ikimagebrowserview

我从Apple官方网站下载名为“IKImageKit Demo”的IKImageBrowserView示例。

但我发现了一个问题。

例如:

当我从名为“A”的文件夹导入图像时,我会删除图像。

然后我导入其他图像(名称与删除的图像相同),缩略图

IKImageBrowser不会改变。

我怎么能解决这个问题?谢谢!

视频展示:http://www.youtube.com/watch?v=f3Jue9wOdUI

4 个答案:

答案 0 :(得分:8)

我遇到一个引用,表示内部缓存IKImageBrowserView使用ImageUID查找缩略图。因此,如果您更改数据源返回的ImageUID,而不仅仅是文件名(可能是文件名+文件大小),那么它将被视为不同的图像。

答案 1 :(得分:3)

您应该查看IKImageBrowserItem协议的imageVersion方法。如果您需要让IKImageBrowserView知道某个项目已更改其图像,您可以增加imageVersion。这将强制视图更新缓存的图像。

答案 2 :(得分:2)

更新:哇,老帖子。看起来我发布后文档已经更新了一段时间;正如其他答案所示,看起来您需要增加图像的imageVersion以从缓存中更新图像。


在仔细考虑了这个问题近三个小时后(一旦我开始,它真的很烦我!),我得出了一个悲伤的结论,这是IKImageKit如何处理图像的错误。 IKImageBrowserView有一个图像和缩略图的缓存,从我拥有的任何实验数据,我猜它只是根据磁盘上的位置缓存它的图像,而不是图像数据(因此它可以懒惰地加载数据) ,我猜),所以即使实际的图像数据可以改变,重新加载相同的文件位置也不会更新图像本身。

当然,我可能完全错了 - 这不会让我感到惊讶,因为关于这个问题几乎没有文档,所以除了Instruments和应用程序本身的结果之外我什么都没有引导我 - 但我给你的建议是暂时忽略这个问题,因为你无能为力,可能会向Apple提出错误。

当然,如果有人可以提供其他证据,请做!我想知道更多关于它的信息 祝你好运!

答案 3 :(得分:0)

您应该想要imageVersion更新或命名路径的图像。 如果您在放置图像后删除名称为“1.png”的图像,如果它的名称为“1.png”,则图像浏览器视图会显示上一个图像,因此您应该注意图像命名。或imageVersion方法。