Как создать TableView, как в приложении «Настройки сети» на iphone? - PullRequest
0 голосов
/ 29 ноября 2009

Как мне сделать такое представление таблицы? Поэтому, если я включу переключатель, необходимо добавить 2 ячейки.

Я уже пробовал

[tableView numberForRowsInSection:6];
[tableView reloadData];

но это не работает, как ожидалось: (

есть идеи?

Лучше всего было бы 2 раздела: первый раздел содержит 5 ячеек, второй раздел содержит одну ячейку с выключенным переключателем, и если переключатель был изменен, 2 ячейки будут добавлены в раздел 2. (добавлено с анимацией :) ) * +1010 *

MHH ..

Заранее спасибо, я очень рад каждому ответу :)

1 Ответ

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

Откуда вы взяли этот -numberForRowsInSection: метод? Насколько я (и документация) знаю, он не существует и никогда не существовал как метод UITableView. Гадание ни к чему вас не приведет, тем более изобретать методы из воздуха.

Возможно, вам следует ознакомиться с некоторыми учебными пособиями, в которых рассматриваются основы использования UITableView, прежде чем пытаться сделать это. Я сомневаюсь, что кто-то потратит время, чтобы написать вам полный класс, чтобы сделать это и поместить его в ответ, и в конечном итоге вам будет намного лучше, если вы просто не попытаетесь скопировать / вставить код, который ты не понимаешь Существует много документации и примеров, которые охватывают UITableView, и это только с учетом того, что доступно от Apple - UITableView - это такой часто используемый класс, что поиск в Google чего-то вроде «UITableView tutorial» даст вам страницы и страницы результатов.

Я дам вам краткий обзор того, что вам нужно будет сделать, хотя: 1. Конечно, вы можете начать с шаблона UITableViewController в XCode и начать настраивать его в соответствии с вашими требованиями ... два раздела, сколько строк в разделе и т. Д., Определяя его на основе некоторых объектов уровня модели, если это необходимо.

  1. Вам нужно будет либо создать собственный подкласс UITableViewCell, либо неплохо настроить макет UITableViewCell по умолчанию (по крайней мере, добавив подвид UISwitch) при создании новых объектов ячейки в tableView:cellForRowAtIndexPath:.

  2. UISwitch должен быть настроен на отправку сообщения вашему контроллеру представления, когда значение переключателя изменяется с использованием -[UIControl addTarget:action:forControlEvents:] для события UIControlEventValueChanged.

  3. В вашей реализации метода действия для этого изменения значения переключателя вам потребуется реализовать логику, чтобы определить, следует ли добавлять или вычитать строки, а затем фактически добавлять или вычитать строки. Вы можете использовать beginUpdates / endUpdates, insertRowsAtIndexPaths:withRowAnimation: и deleteRowsAtIndexPaths:withRowAnimation:, чтобы иметь хорошее поведение плавной анимации строк вместо простого вызова reloadData.

...