Производительность и оптимизация UIImage с UITableViews - PullRequest
0 голосов
/ 22 сентября 2009

Я использую несколько изображений для стилизации UITableViewCells и хочу убедиться, что я все делаю правильно, во-первых, чтобы обеспечить хорошее управление памятью, а во-вторых, чтобы все было как можно быстрее (у меня проблемы с медлительность прокрутки!).

Я знаю, что использование [UIImage imageNamed:] будет кэшировать изображения для скорости, так что можно использовать это для получения всех моих изображений? Или лучше вызывать его только один раз для UITableViewController и сохранять изображение как переменную экземпляра, повторно используя один и тот же объект UIImage для всех моих ячеек?

Я использую прозрачные PNG и прозрачные цветные представления в моей таблице и ячейках, чтобы получить вид, к которому я стремлюсь. Есть ли какие-либо советы по обеспечению того, чтобы он отображался как можно быстрее, чтобы обеспечить плавную прокрутку табличного представления? На данный момент у меня всего около 10 рядов (ячеек), и это уже довольно вяло. Я использую извлеченный контроллер результатов, чтобы получить свои данные, поэтому я не думаю, что это может быть причиной этого.

Большое спасибо,

Michael

Ответы [ 3 ]

1 голос
/ 23 сентября 2009

Совет по использованию прозрачности - нет. Если у вас есть несколько перекрывающихся элементов, посмотрите, есть ли какой-нибудь способ предварительно визуализировать эффект прозрачности - это больше, чем что-либо другое, вот что снизит производительность прокрутки таблиц.

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

Контроллер полученных результатов не должен делать ничего, чтобы замедлить работу. Вы можете попробовать использовать инструменты, чтобы убедиться в этом ...

0 голосов
/ 23 сентября 2009
  1. Если вы используете одно и то же изображение во всех ячейках вашей таблицы, тогда будет полезно получить изображение из системного кэша изображений с помощью + (UIImage) imageNamed: (NSString *) inName API.

  2. Попробуйте получить каждую ячейку, используя dequeueReusableCell API UITableViewCell. Если это возвращает ноль, тогда только создайте новый объект ячейки.

  3. Если цвет табличного представления прозрачный (UIClearColor), установите для непрозрачного свойства табличного представления значение NO.

0 голосов
/ 22 сентября 2009

Полагаю, лучше использовать экземпляр UIImage для всех ваших ячеек, таким образом вы можете сохранить его и убедиться, что он не будет выпущен в случае предупреждения о памяти, гарантии, которую у вас нет для [UIImage imageNamed:] кеш. Кроме того, совет о том, как сохранить его гладким, - убедиться, что у вас нет перекрывающихся видов, особенно прозрачных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...