我有一个包含选项卡栏设计的 macOS 应用程序(即:Tweetbot)。有 4 个选项卡链接到 4 个不同的视图控制器。初始视图控制器(视图一)包含一个NSCollectionView
水平显示 3 个单元格。
这一切都工作正常,但是当我切换到另一个视图控制器然后返回到初始视图控制器时,集合视图的顺序无缘无故地改变。我没有对数据源进行任何更改(这是一个NSMutableArray
)并且我没有添加/删除任何单元格,也没有打电话reloadData
。我不明白为什么集合视图单元格的顺序不断变化。
我已经做了一些测试,可以确认我的数据源中的数据顺序根本没有改变。因此,对于集合视图来说,仅更改单元格的顺序是没有意义的。
我注意到的另一个奇怪的问题是,如果我将集合视图限制为 2 个单元格,则不会出现此问题。这让我想知道这个问题是否归因于某种NSCollectionView
在后台运行的缓存方法?也许当集合视图回收单元格时,它使用了不正确的数据?
我尝试了很多不同的解决方案,但似乎没有任何效果。有谁知道我可以测试/尝试什么,以找出问题所在?
另类想法
我可以用NSTableView
相反,因为它支持多列(与UITableView
)。所以我可以做一个NSTableView
有 3 列。这种方法的性能会比NSCollectionView
(特别是如果我想添加大量单元格?)。
我无法找出集合视图出了什么问题。所以我最终使用了NSTableView
具有多列(而不是集合视图行)。我将每一列设置为一行(索引 0),这使得表视图看起来与我正在使用的集合视图完全相同。
从性能角度来看,表视图似乎也好得多。即使有数百列,滚动/交互时仍然非常流畅。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)