Изменение источника данных представления коллекции на кране
У меня есть представление коллекции с постепенно увеличивающимся количеством предметов. Первоначально может отображаться 100 элементов. Затем, основываясь на выборе одного, я хочу вставить элементы после последнего видимого в данный момент элемента. Я также хочу обновить то, что уже было добавлено, но я еще не видел.
performBatchUpdates
делает то, что мне нужно, но если вы быстро выберете / отмените выбор нескольких элементов, вы получите постепенное снижение производительности.
Это то, что я имею до сих пор на каждом кране сотовой связи:
performBatchUpdates({ () -> Void in
collectionView.reloadItemsAtIndexPaths(reloadIndexPaths)
collectionView.insertItemsAtIndexPaths(insertIndexPaths)
}, completion: { (completed: Bool) -> Void in
Любые мысли о том, что я мог бы сделать, чтобы сгладить производительность? Инструменты подтверждают мое предположение, что это является предметом озабоченности.
1 ответ
Попробуй сделать это async
как это:
dispatch_async(dispatch_get_main_queue()) { () in
performBatchUpdates({ () -> Void in
collectionView.reloadItemsAtIndexPaths(reloadIndexPaths)
collectionView.insertItemsAtIndexPaths(insertIndexPaths)
}, completion: { (completed: Bool) -> Void in
...
}