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