лучший способ построить экран настроек iphone - PullRequest
0 голосов
/ 03 января 2011

Я создаю экран настроек для приложения для iPhone, и он должен напоминать сгруппированное представление таблицы.Каждая «клетка» должна вести себя как кнопка.У большинства ячеек есть только изображение, вид метки и индикатор раскрытия.Один будет отображать значение в дополнение к метке.Все эти кнопки представят новый вид при нажатии.

Теперь, как это реализовать?Я подумывал о том, чтобы просто выложить набор кнопок с пользовательскими фоновыми изображениями, или лучше было бы просто использовать табличное представление.Если это так, что это должно быть реализовано.До сих пор я использовал только табличные представления для отображения неких динамических данных, в которых каждая ячейка отображала один и тот же базовый подробный вид.Мне очень любопытно выяснить, как настроить cellForRowAtIndexPath.Может ли это содержать какой-то оператор switch для индивидуальной настройки каждой ячейки или есть более простой способ справиться со всем этим?

Ответы [ 4 ]

5 голосов
/ 03 января 2011

InAppSettingsKit - проект с открытым исходным кодом, воссоздающий приложение настроек внутри вашего приложения для согласованности пользовательского интерфейса. Вы можете выбрать его отдельно для ваших ответов.

2 голосов
/ 03 января 2011

Вы захотите использовать UITableViewController с разделами, установленными на UITableViewStyleGrouped.

Каждая из групп является разделом, поэтому вы захотите вернуть, сколько разделов у вас есть с - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView.

Для каждого раздела вы хотите указать, сколько строк в - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section.

Вы захотите настроить каждую ячейку с помощью - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath (что, кстати, говорит вам, какую строку вы изменяете в переменной indexPath).

Наконец, вы захотите обработать щелчок строки в - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath, используя шаблон, который XCode предоставляет для вас:

[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];

Надеюсь, это поможет!

0 голосов
/ 03 января 2011

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

В большинстве случаев экран должен соответствовать экрану настроек по умолчанию. Для этого вы должны использовать tableView с настроенными ячейками. Вы можете использовать следующие элементы управления внутри ячеек таблицы в зависимости от типа настроек. 1. alabel --- для статического текста, 2. переключатель --- для настроек с двумя значениями (ON / OFF или o / 1 или любые два набора значений), например, NightMode вкл / выкл, 3. ползунок ---- для указания диапазона значений, например, яркость и т. Д.

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

0 голосов
/ 03 января 2011

Настройки должны идти в разделе «Настройки» на iPhone.Ваши собственные настройки приложения включаются в стандартные настройки путем добавления пакета Settings.bundle в ваше собственное приложение.

Это просто и соответствует стилю.

Как это сделать, описано здесь:

http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Preferences/Preferences.html%23//apple_ref/doc/uid/TP40007072-CH6-SW1

...