Как хранить CALayers для повторного использования? - PullRequest
3 голосов
/ 15 октября 2010

У меня есть куча идентичных CALayers, которые я хочу использовать повторно.Часто некоторые из них должны исчезнуть, а затем повторно использоваться в другом месте в том же суперслое (примерно через полсекунды).

Каков наилучший способ (с точки зрения производительности) сохранить их, пока ониисчезли с экрана?setHidden: YES, или setOpacity: 0, или removeFromSuperLayer?Или что-то еще, о чем я не думаю?

(Существует около 12 идентичных CALayers в форме круга с содержимым UIImage, и около 30 CAShapeLayers, каждый из которых содержит только отрезок линии - хотя обычно в разных ориентациях -)

Ответы [ 2 ]

0 голосов
/ 15 октября 2010

Три упомянутых вами слова, кажется, все разумные вещи, чтобы попробовать.Вы действительно должны протестировать каждый из них и посмотреть, какая из них дает вашему приложению наилучшую производительность, результаты могут вас удивить.

0 голосов
/ 15 октября 2010

Вы должны использовать nsset или nsarray для поддержки очереди неиспользованных calayers.Процесс будет аналогичен тому, что вы делаете при использовании табличных ячеек.

Поскольку каждый calayer является removeFromSuperLayer'd, поместите его в свой набор и извлеките один из набора, когда он вам нужен.

...