Пользовательская производительность прокрутки ячеек UITableViewController - PullRequest
2 голосов
/ 28 февраля 2011

Итак, у меня есть UITableViewController.Ячейки в этом табличном представлении имеют следующие UIControls:

 2 UILabels, one of which has a shadow and a clearColor background color.
 1 Custom Progress view resized to be larger and with a different color
 3 UIButtons

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

Итак, я читал сегодня инашел http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview/ эту статью парня из Tweetie о том, как добиться быстрой прокрутки за счет создания подкласса UITableViewCell и рисования самостоятельно.

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

Хотя я вижу, как это было бы чрезвычайно эффективным способом выполнения действий, мне кажется, чтопроблематично для таких вещей, как индикатор хода выполнения и кнопки, и даже один из моих ярлыков в определенной степени.

Поэтому мой вопрос таков: нужно ли мне полностью писать элементы управления с нуля, если я хочу, чтобы у меня была функция прокруткибыть хорошим, или есть способ использовать подставкуARD UI Контролирует и обеспечивает хорошую производительность прокрутки?

Ответы [ 2 ]

1 голос
/ 28 февраля 2011

Если вы добавляете пользовательские элементы управления в свою ячейку, вам все равно следует создавать подклассы UITableViewCell, добавлять элементы управления в функцию init, размещать их в layoutSubviews и т. Д., Как и в любом другом представлении.Как говорит VdesmedT, убедитесь, что вы повторно используете ячейки с помощью механизма удаления, чтобы не выделять новые ячейки при каждой операции прокрутки.

0 голосов
/ 28 февраля 2011

ОК, я предложу что-то очевидное, но для достижения производительности UIScrollView необходимо быть уверенным, что механизм удаления работает хорошо. Я часто вижу, что разработчики неправильно устанавливают идентификатор в IB и поэтому упускают преимущество кэширования UITableViewCell

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