скрыть или удалить uiLabels для производительности - PullRequest
1 голос
/ 29 марта 2011

У меня 200+ uiLabels для длинного прокрутки, мне нужно улучшить производительность прокрутки.Лучше ли скрывать и показывать ярлыки или отпускать их и создавать заново, когда они не видны?Я наложил на них теги, в настоящее время я использую их для скрытия / отображения:

for (int i=0; i<42; i++) {
        [theScroller viewWithTag:i].hidden = NO;
    }

и наоборот, вызванного значениями scroll contentOffset.y ..

У меня есть uiLabelsколлекция в листе, так что его также легко освободить и восстановить?

спасибо за любую помощь ..

Ответы [ 4 ]

1 голос
/ 29 марта 2011

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

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

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

1 голос
/ 29 марта 2011

@ Отметьте да, было бы лучше выпустить метки, как будто они не видны, не используются, поэтому они улучшат производительность и также помогут вам в управлении памятью.

1 голос
/ 29 марта 2011

Наличие 200+ просмотров снижает производительность из-за:

  • Использование памяти
  • Управление отображением / анимация

Было бы лучше удалитьосвободите скрытые метки и воссоздайте их при необходимости: объем памяти будет меньше, а суперпредставлению нужно будет управлять только несколькими подпредставлениями (плюс издержки на воссоздание меток не так высоки).близко к тому, что делает табличное представление, есть место для дальнейшего улучшения: повторное использование метки.Удалите скрытые метки из их суперпредставления, измените их заголовок / стиль и повторно добавьте их на новой позиции.

0 голосов
/ 29 марта 2011

Вы можете попробовать использовать tableView вместо представления прокрутки, если каждая метка жесткая.

Используйте пользовательскую ячейку таблицы, и в каждой ячейке есть свой ярлык.

...