Определить индекс раздела из верхнего или нижнего колонтитула раздела UITableView? - PullRequest
1 голос
/ 26 ноября 2009

У меня есть многосекционное табличное представление, и у каждого раздела в нижнем колонтитуле есть кнопка, которая должна добавить новый элемент в этот раздел. Количество секций не является предопределенным или ограниченным, поэтому я не могу сделать отдельный селектор для каждой секции, такой как «addItemToSection1» и т. Д.

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

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

Ответы [ 2 ]

2 голосов
/ 26 ноября 2009

Re: ответ gerry3 выше (добавлено как «ответ», поскольку SO по какой-то причине не позволяет мне комментировать вышеуказанный ответ.)

Спасибо за информацию. Кажется, что нет способа избежать необходимости поддерживать отдельную структуру данных для сопоставления разделов с базовой моделью и / или из нее, поскольку мне нужно иметь индекс раздела, чтобы я мог вызывать такие вещи, как insertRowsAtIndexPaths: withRowAnimation: и так как раздел индексы могут измениться из-за добавления или удаления разделов. Как раздражает!

1 голос
/ 26 ноября 2009

Я видел несколько способов привязки кнопки к ее ячейке табличного представления или, что более важно, к строке или данным, связанным с этой ячейкой. Вы должны быть в состоянии сделать что-то подобное для разделов таблицы.

  1. Используйте тег кнопки. В селекторе действий кнопки используйте тег кнопки, чтобы получить данные. Похоже, вы уже исключили это.
  2. Используйте настраиваемое представление для раздела, у которого есть свойство для связанных с ним данных, и кнопка в качестве подпредставления. В селекторе действий кнопки получите конкретный экземпляр пользовательского представления в качестве родительского представления кнопки. Затем получите данные из свойства пользовательского представления.
  3. Поместите кнопку в массив кнопок и данные в массив данных в том же индексе, что и соответствующая кнопка. В селекторе действий кнопки найдите индекс кнопки в массиве кнопок и извлеките данные из массива данных, используя этот индекс.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...