Как повысить производительность для UITableViewCell со слишком большим количеством UITextViews? - PullRequest
3 голосов
/ 08 ноября 2011

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

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

Как я могу это реализовать?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Просто добавьте UITextView как подпредставление под UITableViewCell.

В - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath, вы можете добавить UITextView следующим образом:

// Assume cell is a UITextView *
UITextView *txtView = [[UITextView alloc] initWithFrame:CGRectMake(5, 30, 100, 30)];
[cell addSubview:txtView];

return cell;
0 голосов
/ 08 ноября 2011

В iOS Developer Library у вас есть пример с именем TableViewSuite , здесь у вас есть несколько примеров того, как реализовать UITableView's, последний пример (номер 5) показывает лучшиеспособ реализации UITableView с высокой производительностью, поэтому я предлагаю вам проверить этот пример.

Описание проекта TableViewSuite:

В этом примере показано, как использовать UITableView в процессеВсе более продвинутые приложения, отображающие информацию о часовых поясах.

При реализации ячейки табличного представления существует разрыв между оптимальной производительностью прокрутки и оптимальной производительностью редактирования / переупорядочения.Обычно вы должны использовать подпредставления в представлении содержимого ячейки.

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

Подвиды имеют две стоимости:

1) Инициализация.Это может быть в значительной степени смягчено повторным использованием ячеек таблицы.2) Композиция.Это может быть в значительной степени смягчено, сделав взгляды непрозрачными.Часто одно полупрозрачное подпредставление подходит, но более одного часто вызывает пропадание кадров при прокрутке.

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

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

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