2016-02-02 1 views
0

У меня есть просмотр коллекции с постепенно увеличивающимся количеством элементов. Первоначально может отображаться 100 элементов. Затем, основываясь на выборе одного, я хочу вставить элементы после последнего видимого в данный момент элемента. Я также хочу обновить то, что уже было добавлено, но я еще не видел.Изменение коллекции источника данных данных на кран

performBatchUpdates делает то, что мне нужно, но если вы выберете/отмените выбор нескольких элементов быстро, вы получите постепенное снижение производительности.

Это то, что я до сих пор на каждой ячейки кране:

performBatchUpdates({() -> Void in 
    collectionView.reloadItemsAtIndexPaths(reloadIndexPaths) 
    collectionView.insertItemsAtIndexPaths(insertIndexPaths) 
}, completion: { (completed: Bool) -> Void in 

Любые мысли о том, что я могу сделать, чтобы сгладить производительность? Инструменты подтверждают мое предположение, что это вызывает озабоченность.

ответ

0

Попробуйте делать это async так:

dispatch_async(dispatch_get_main_queue()) {() in 
     performBatchUpdates({() -> Void in 
      collectionView.reloadItemsAtIndexPaths(reloadIndexPaths) 
      collectionView.insertItemsAtIndexPaths(insertIndexPaths) 
      }, completion: { (completed: Bool) -> Void in 
      ... 
     } 
+0

Я забыл упомянуть, что все это заворачивается в dispatch_async уже, поэтому я немного не уверен, что лучше. –

 Смежные вопросы

  • Нет связанных вопросов^_^