Настройки-стиль сгруппированной таблицы


Таким образом, создать таблицу стилей настроек на iPhone несложно. Проблема в том, что они добавляют много кода, поскольку ваши настройки имеют гамму опций/стилизованных ячеек. В одном разделе может быть контрольный список, в другом-ячейки с дополнительными сведениями для дальнейшего детализации, в третьем-метки с полями UITextFields.

Мой вопрос заключается в том, каков самый чистый способ создания этой таблицы. Вы обычно создаете подкласс UITableViewController, а затем подкласс UITableViewCell для каждого отдельного типа ячеек и написать вспомогательные классы для этих ячеек? То есть, если у вас есть таблица стилей настроек с 4 секциями, все разные типы ячеек, вы загрузите 4 nibs в таблицу и импортируете 4 файла классов? Программно установить фрейм, представления, текстовые поля и пометить их для последующего доступа?

Ответ (ы) на этот вопрос, вероятно, субъективен, но я хотел бы знать, что Вы, эксперты, считаете наиболее элегантным подходом к этой общей проблеме.
3 6

3 ответа:

Самый простой способ сделать это-просто добавить элементы управления во время tableView:cellForRowAtIndexPath: метод.

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

Я бы предпочел установить большинство настроек, которые я могу в Interface Builder, вместо того, чтобы писать целую кучу кода, чтобы сделать визуальный/макет правильным. Как вы можете себе представить, потребуется довольно много раундов "modify - build - test" в симуляторе iPhone, чтобы получить этот специальный вид таблицы, выложенный так, как вы хотите.

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

Библиотека Three20 (извлеченная из приложения Facebook для iPhone) содержит набор готовых ячеек, содержащих различные элементы управления.

(Не уверен, что вы хотите их использовать, однако. Three20 немного страдает от "не-изобретенного-здесь" и пытается подклассировать и расширить все, поэтому добавление его добавляет довольно много беспорядка в ваш проект. Но, по крайней мере, вы можете использовать его в качестве примера.)

П. С. Ваш вопрос вдохновил меня на открытие "каковы ваши любимые UITableView / трюки инструменту UITableViewCell?" поток на переполнение стека, проверьте его для получения дополнительных советов.