2013-07-05 10 views
8

Per il controller di visualizzazione delle impostazioni della mia app, voglio avere una vista tabella con una serie di opzioni che l'utente può modificare. Interruttori a levetta, segui, stepper, ecc.Le migliori pratiche per progettare la visualizzazione tabella per le impostazioni dell'app?

Qual è il modo migliore per farlo? Le visualizzazioni di tabella sono piuttosto semplici nel caso in cui ogni cella segua un layout semplice. Forse un titolo e qualche sottotesto. Ma in questo caso una cella può essere uno di, diciamo, cinque layout a seconda del tipo di impostazione che viene modificata.

è il modo migliore per gestire questa situazione alla sottoclasse UITableViewCell, e del tableView cellForRowAtIndexPath:, prima di tornare nella cella impostare una proprietà personalizzata come kind a qualcosa come toggle o label? Quindi nel viewDidLoad della sottoclasse di tale cella si imposta la cella in base alla proprietà kind?

È inefficiente? Devo creare una cella con tutti i controlli già presenti, ma nascosta, quindi abilitarli in base a kind? Devo avere una sottoclasse per ogni tipo di cella con controlli diversi che voglio?

Ecco come sto pensando di gestirlo. Ma c'è un modo più preferito? È inefficiente perché non ha un modello necessariamente prevedibile da una cella all'altra?

+0

io consiglierei InAppSettingsKit come accennato in [risposta di @Wayne Hartman] (http://stackoverflow.com/a/17495359/795339).Ma se si dovesse creare tutto ciò da zero, creerei la vista tabella in uno storyboard e realizzerò una cella prototipo riutilizzabile per ogni tipo di campo: una cella prototipo per un campo di testo, una per un interruttore, ecc. la cella prototipo sarebbe una sottoclasse diversa di 'UITableViewCell' e implementerà un protocollo definito dall'utente, con le proprietà per il nome dell'etichetta e forse il nome di una chiave nel dizionario delle impostazioni per associare il campo a. –

risposta

15

Non mi piace l'idea di dover eseguire il debug del codice di qualcun altro se non mi piace qualcosa in esso. Ecco perché provo a scrivere codice per conto mio e poi vedo se risponde ai miei bisogni o no. Se così non fosse, andrei a dare un'occhiata a InAppSettingsKit.

Quello che hai chiesto è una cosa molto semplice e ho implementato in quasi tutte le mie app, ad esempio UITableView con opzioni.

questo è come lo farei. Puoi fare tutto questo direttamente in xcode.

  • Creare un UITableView controller
  • Fai un controller di navigazione. In modo che è possibile aggiungere voce su di esso come con la parola "impostazioni"
  • Change a celle statiche
  • Poi cambiare a cellule raggruppate
  • creare quanti gruppi di cui hai bisogno
  • Per ogni cella aggiungere interruttori come necessario
  • Aggiungi footer e intestazione a ciascun gruppo
  • Aggiungi belle immagini accanto a ciascuna opzione come ti piace.

Spero che questo aiuti. Ecco una delle mie schermate di impostazioni di progetto di esempio. Non è possibile visualizzare l'intestazione e il piè di pagina che ho creato.

enter image description here

+0

Come si ottiene il segno della freccia destra in questo modo? – Bhargav

+1

@Bhargav In Storyboard, puoi selezionare la cella e cambiarne l'accessorio in ** Indicatore di divulgazione **. –

4

Poiché si utilizza questo per le impostazioni, avete considerato InAppSettingsKit?

Nei casi in cui ciò potrebbe essere eccessivo, ho fatto ricorso alla creazione di un tableview statico in uno storyboard in cui è possibile eseguire il layout di ogni impostazione distinta e avere il controllo in fase di progettazione sul suo aspetto.

Problemi correlati