Приемы для того, чтобы улучшить производительность прокрутки iPhone UITableView?

Дайте мне язык программирования что:

  1. стандартизируется и не управляется единственной компанией
  2. , не связывается с одной платформой (не только в теории)
  3. , компиляции к собственному коду
  4. дают мне ту же эффективность, как C++ делает
  5. , обеспечивает, очень хорошо продуманная стандартная библиотека
  6. имеет по крайней мере одну зрелую реализацию для различных важных платформ

..., и я мог бы рассмотреть переключение;-)

89
задан TheNeil 24 May 2019 в 04:10
поделиться

3 ответа

  1. Кэшировать высоту строк (представление таблицы может запрашивать это часто)
  2. Создайте кеш-память, использовавшуюся недавно, для изображений, используемых в таблице (и сделайте недействительными все неактивные записи при получении предупреждения о памяти)
  3. Нарисуйте все в UITableViewCell drawRect: , если возможно, избегайте вложенных представлений любой ценой (или, если вам требуются стандартные функции специальных возможностей, содержимое view's drawRect: )
  4. Сделайте свой слой UITableViewCell непрозрачным (то же самое касается представления содержимого, если оно у вас есть)
  5. Используйте функциональность reusableCellIdentifier в соответствии с рекомендациями UITableView примеры / документация
  6. Избегайте градиентов / сложных графических эффектов, которых нетt предварительно запекается в UIImage s
155
ответ дан 24 November 2019 в 07:12
поделиться
  1. Если вы подклассифицируете UITableViewCell , не используйте перо, вместо этого напишите его в коде. Это много быстрее, чем загрузка файлов Nib.
  2. Если вы используете изображения, убедитесь, что вы их кешируете, чтобы не нужно загрузить из файла более один раз для каждого (если у вас есть память - вы были бы удивлены, как много места занимают изображения).
  3. Сделайте столько элементов непрозрачными, сколько возможное. Точно так же попробуйте не использовать изображения с прозрачностью.
40
ответ дан 24 November 2019 в 07:12
поделиться

The developer behind Tweetie has written extensively about this and has some code that demonstrates how it was done for that app. Basically, he/she advocates one custom view per table cell, and drawing it manually (rather than subviewing with Interface Builder, among other options).

fast-scrolling-in-tweetie-with-uitableview

Also, Apple has updated its own sample code for TableView in its TableViewSuite tutorials (maybe in response to this?)

TableViewSuite

34
ответ дан 24 November 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: