2015-04-28 2 views
1

Я пытаюсь создать страницу параметров для моего приложения iOS. У меня есть массив категорий, как это:Создать вложенную таблицу или отдельную страницу?

var options = [ 
    "Location", 
    "Calculation Method", 
    "Juristic Method", 
    "Manual Adjustment", 
    "Daylight Saving Time" 
] 

Тогда я загружать их в мой взгляд контроллера, как это:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return options.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = UITableViewCell(style: .Default, reuseIdentifier: "Cell") 
    cell.textLabel?.text = options[indexPath.row] 

    return cell 
} 

Это дало мне один вид таблицы отлично! Теперь я пытаюсь обработать щелчок каждой строки, чтобы открыть список параметров для этой категории. Например, Location будет иметь переключатель, позволяющий включить GPS, или позволить им выбирать их выпадающие местоположения или карту. Calculation Method откроет табличный вид контрольных знаков. Daylight Saving Time выведет один ряд с переключателем.

Вопрос: что это лучший подход для всего этого? Должен ли я создавать словарь массивов для хранения моих опций и повторного использования таблицы, или мне нужно создать отдельное представление для каждой категории параметров? Я нахожу противоречивые или устаревшие учебники по этому вопросу, и у меня также возникают проблемы с преобразованием примеров из Objective-C. Любая помощь или руководство будут очень благодарны!

ответ

1

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

Для этого у вас может быть массив «категорий», которые должны содержать порядок разделов. Это будет соответствовать массиву options, который вы определили в своем вопросе. Наряду с этим я бы поставил словарь подкатегорий. Для местоположений это будет выглядеть так:

var options = [ 
    "Location" : ["location-enable-gps", "location-choose-list", "location-choose-map"], 
    "Calculation Method": ..., 
    "..." 
] 

В приведенном выше Словаре значения массива для местоположения - это константы, которые я определил. Это связано с тем, что вы будете сильно изменять поведение каждой ячейки. Включить GPS можно только в качестве флажка. Выбор из списка может быть лучше для детализации/модального (и при выборе отображения выбранного местоположения) выбор из карты может также поддаваться модальному дизайну («Модаль» - это когда появляется контроллер вида а затем увольняется после акции).

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

4

Я предлагаю создать отдельные виды для каждой категории опций. Из приведенного выше примера вы получите еще 5 контрольных контроллеров: Location, Calculation Methods, Juristic Method, Manual Adjustment и Daylight Saving Time. И тогда для ваших методов расчета, поскольку это табличный вид контрольных меток, у меня, вероятно, будет массив, в котором хранятся каждый параметр внутри CalculationMethodsViewController. То же самое для остальных. Если им нужны другие данные для отображения, поместите их в новые контроллеры представлений, а не в исходный контроллер представления.

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