所以我有一个包含歌曲列表的 NSCollectionView。当我更新 NSCollectionView 通常代表的数组时,UI 会反映该更改:
图片:http ://cl.ly/image/1D3A1o192k3W
代码:
[self setCurrentPlaylist:[HMRequest playlistPopular3Day]];
(注:_currentPlaylist 为数组,[HMRequest playlistPopular3Day]
返回歌曲数组)
dispatch_async
但是当我突然尝试使用时,用户界面变得疯狂。NSCollectionView 的可见部分不会更新,但是当我向下滚动时,之前隐藏的部分会正确更新。
图片(我滚动了一下,空白的白色是以前可见的,歌曲是隐藏的滚动视图的一部分):http ://cl.ly/image/3y0f212Y3W3S
代码:
dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(aQueue, ^{
[self setCurrentPlaylist:[HMRequest playlistPopular3Day]];
});
有什么帮助避免那个空白的 UI 部分吗?