Внедрить систему, аналогичную тому, как UITableView удаляет уже созданные ячейки - PullRequest
4 голосов
/ 02 января 2011

Мне нужно реализовать сетку для отображения некоторых видов объектов на iPad. Чтобы получить максимальную отдачу от SDK, я подумал, что буду использовать UITableView, чтобы отслеживать мои строк, а затем реализовать какой-то перечислитель, чтобы вернуть правильные столбцы для помещения в мои ячейки.

Счетчик работает нормально. Я просто передаю tableViews viewController одномерный массив, и перечислитель разбивает его на «псевдо-двумерный набор», однако я бы хотел, чтобы сетка использовала подход, аналогичный UITableViews для строк и столбцов: *

[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

Как сейчас, я строю количество представлений столбцов, необходимое для каждой строки, и добавляю их вручную в ячейку в cellForRowAtIndexPath:

Я хотел бы создать метод с именем что-то вроде:

columnsForRowAtIndexPath:

и он работает как cellForRowAtIndexPath..

Итак, вопрос в том, как tableView избегать инициализации моих ячеек снова и снова и как я могу реализовать подобное поведение?

-

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

1 Ответ

1 голос
/ 06 января 2011

Похоже, вы уже ответили на свой вопрос, но просто для подтверждения своего подозрения, обычно вы сначала пытаетесь получить объект из NSMutableSet с помощью [myCache anyObject].Если вы успешно получили объект таким образом, обязательно удалите его из набора, чтобы он больше не захватывался.С другой стороны, если -anyObject возвращает nil, то в кеше недостаточно кэшированных объектов для того, что вам нужно, поэтому вам нужно создать новый (и убедитесь, что вы помещаете его обратно в кеш, когдаготово).

Это всего лишь один из способов добиться того, ради чего вы стреляете.

Имеет смысл?

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