我们有一个IKImageBrowserView,它可以显示一堆图像。我们在后台异步下载这些图像,并将它们缓存到磁盘。然后,我们使用KVC通知IKImageBrowserView imageRepresentation已更改。例如didSetValueForKey:@"ImageRepresentation"。但是,如果用户滚动视图(我们将IKImageBrowserView嵌入到NSScrollView中),IKImageBrowserView似乎只会刷新自己来加载最近下载的图像。为什么会这样呢?有没有办法强制IKImageBrowserView在不等待用户滚动视图的情况下重新绘制某个单元格或所有可见单元格?
发布于 2012-07-25 23:59:32
尝试使用reloadData方法。
[browser reloadData];我也遇到过类似的情况,我正在使用IKImageBrowserView查看正在下载的图片。在我的示例中,我使用占位符图像创建初始图像集,然后下载该图像。每次传入时,我都用不同的图像更新数据源条目,增加图像版本号,然后在浏览器上使用reloadData方法。我还关闭了动画,这样用户就看不到整个浏览器的重绘,只看到已经更新的图像。
- (void) setImage: (NSImage *) image
{
[img release];
img = image;
[img retain];
imageVersion++;
}上面是我的数据项的setter方法,它实现了非正式协议。
https://stackoverflow.com/questions/11586050
复制相似问题