Как мне создать TableView, например, в приложении "Настройки сети" на iphone?

StackOverflow https://stackoverflow.com/questions/1815729

  •  08-07-2019
  •  | 
  •  

Вопрос

Как мне создать такое табличное представление?Таким образом, если я включу переключатель, должно быть добавлено 2 ячейки.

Я уже пытался

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

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

есть какие-нибудь идеи?

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

mhh..

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

Это было полезно?

Решение

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top