0

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

但是我发现了一个问题。

例如:

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

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

IKImageBrowser 不会改变。

我该如何解决这个问题?谢谢!

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

4

4 回答 4

8

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

于 2010-11-13T00:24:28.090 回答
3

You should take a look at the IKImageBrowserItem Protocol's imageVersion method. If you need to let IKImageBrowserView know that a item has changed its image you can increment the imageVersion. This will force the view to update the cached image.

于 2011-01-29T21:41:07.287 回答
2

更新:哇,旧帖子。看起来文档在我发布后有一段时间更新了;正如其他答案所暗示的那样,看起来您需要增加图像imageVersion才能从缓存中更新图像。


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

当然,我可能完全错了——这并不让我感到惊讶,因为实际上没有关于这个问题的文档,所以我只有 Instruments 和应用程序本身的结果来指导我——但我给你的建议是忽略现在的问题,因为您对此无能为力,并且可能将错误提交给 Apple。

当然,如果有人可以介绍其他证据,请这样做!我很想知道更多。
祝你好运!

于 2010-08-30T05:23:48.027 回答
0

you should want to imageVersion update or name the image of the path. if you delete image with name "1.png" after you put image if it's name "1.png" the image browser view show the previous image so you should take care of image naming. or imageVersion method.

于 2011-12-22T07:53:59.663 回答