2013-12-11 4 views
0

Я по существу хочу иметь следующий сценарий.Что такое хорошая практика для кода для динамического добавления контента в View Controller?

enter image description here

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

Будучи новым для разработки iOS, я не уверен в умном, простом способе сделать это. Каков наилучший способ сделать это?

ответ

4

Это отличный случай для использования UITableView. Создайте таблицу и прототип ячейки, в которой есть все необходимые вам элементы (число, поля для имени и возраста и т. Д.). Создайте также другой прототип ячейки для «добавить больше». Это будет последняя ячейка в вашей таблице. Увеличивайте количество ячеек при добавлении новой записи.

В UITableView имеется несколько обучающих программ в Интернете. Вы хотите найти, как настроить и использовать 2 разных типа ячеек. См., Например, this SO question.

Если вы идете с табличномом, в отличие от просто добавив некоторые подвиды, вы получите некоторые полезные функции бесплатно:

  • прокрутки, если у вас есть много записей
  • анимированных вставок строк
  • поддержка для удаления строк/записей
  • простая настройка вашего списка записей: заголовки, нижние колонтитулы, разделы.
1

Вы можете сделать это вручную - проблем нет. Создание UITextField, UILabel и т.д. объекты в коде, настроить их по своему вкусу и добавить их с помощью

[view addSubview: ] 

метода

1

Случай A: Если вы собираетесь добавить ограниченное количество этого типа зрения

Создать один ViewController, добавьте TextField, метку и т.д. для просмотра этого вида контроллера. Создать новый экземпляр этого ViewController, когда пользователь нажимает кнопку Добавить затем использовать addSubview по ссылаюсь у позиции ранее Добавленный взгляд в

Случай B: Если количество не ограничено вам понадобится свиток, то Tableview является лучшим вариантом

  1. Вам нужно будет создать пользовательскую ячейку с вашими метками и текстовым полем ИЛИ вы можете сделать то же самое с помощью ячейки прототипа, если используете раскадровку.

  2. Когда пользователь нажмет кнопку добавить это сделать

// Обновление datasoure для новой ячейки

[tableView insertRowsAtIndexPaths:paths 
          withRowAnimation:UITableViewRowAnimationTop]; 

Вы можете создать добавить больше вид и установить его в качестве таблицы колонтитула, как это будет всегда оставаться на дне, как этот

table.tableFooterView = assignYourAddMoreViewHere; 
1

я бы:

  1. Создайте прокрутку - UIScrollView, установите размер этого прокрутки в размере основного вида и добавьте этот вид прокрутки в основной вид.

  2. Создать вид контента - UIView, задать ширину этого содержимого для просмотра с прокруткой. Но высота должна быть равна 0. Настройте вид прокрутки на первом шаге setContentSize: на размер контента. Добавьте этот просмотр содержимого в виде подсмотра прокрутки.

  3. Создайте iVar, чтобы отслеживать, сколько кнопок было использовано.

  4. Теперь каждый раз, когда кнопка + прослушиваются, создавать кнопки, метки и т.д., используйте Ивар в 3, чтобы вычислить и настроить рамку для каждой кнопки, этикетки и т.д.

  5. Adjust фрейм просмотра содержимого в чтобы освободить место для нового набора кнопок, ярлыков и т. д. Обновите содержимое contentSize прокрутки: до размера фрейма содержимого.

  6. Добавьте эти кнопки, метки и т. Д. На шаге 4 к содержимому Просмотр в виде подзонов.

Смежные вопросы