Я пытаюсь отобразить 256 ячеек в NSCollectionView. Я использую Storyboard, но NSCollectionViewItem находится в отдельном xib. Он регистрируется в CollectionView при запуске. Объект DataSource содержит массив (NSMutableArray) с числами, которые загружаются в представленный объект NSCollectionViewItem, когда он предоставляется функцией makeItemWithIdentifier(...).
func collectionView(collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
return dataArray.count
}
func collectionView(collectionView: NSCollectionView, itemForRepresentedObjectAtIndexPath indexPath: NSIndexPath) -> NSCollectionViewItem {
let item = collectionView.makeItemWithIdentifier("CellItem", forIndexPath: indexPath) as! CellCollectionViewItem
item.representedObject = dataArray[indexPath.indexAtPosition(1)]
item.index = indexPath.indexAtPosition(1)
item.dataSource = self
return item
}
Когда ячейки должны отображаться, отображаются только (точно) 100 ячеек вместо всех 256. Ни в коем случае массив данных не содержит 100 элементов. Кроме того, мой вывод отладки показывает, что на самом деле создаются все элементы NSCollectionViewItem. Это означает, что проблема должна заключаться в рендеринге представления коллекции. Есть ли ограничение на количество элементов, которые NSCollectionView может отображать одновременно? Что мне не хватает?
Остальные ячейки появляются, когда пользователь медленно изменяет размер окна, и снова исчезают, если пользователь быстро изменяет размер окна. Прекращает ли представление отображение через фиксированный промежуток времени?