2013-07-05 10 views
8

Für den Controller meiner App-Einstellungen möchte ich eine Tabellenansicht mit einer Reihe von Optionen haben, die der Benutzer optimieren kann. Kippschalter, Übergänge, Stepper usw.Best Practices zum Entwerfen der Tabellenansicht für App-Einstellungen?

Was ist der beste Weg, dies zu erreichen? Tabellenansichten sind ziemlich einfach in dem Fall, in dem jede Zelle einem einfachen Layout folgt. Vielleicht ein Titel und ein Subtext. In diesem Fall kann eine Zelle jedoch eine von fünf Layouts sein, abhängig davon, welche Art von Einstellung geändert wird.

ist der beste Weg, dies zu umgehen UITableViewCell Unterklasse und in der Tableview der cellForRowAtIndexPath:, bevor Sie die Zelle zurückgeben eine benutzerdefinierte Eigenschaft wie kind um so etwas wie toggle oder label eingestellt? Dann in der viewDidLoad dieser Zelle Unterklasse setzen Sie die Zelle basierend auf der kind Eigenschaft?

Ist das ineffizient? Soll ich eine Zelle mit allen Steuerelementen bereits darauf anlegen, aber versteckt, dann aktiviere sie einfach anhand von kind? Sollte ich für jede Art von Zelle eine Unterklasse mit verschiedenen Steuerelementen haben, die ich möchte?

So denke ich darüber nach, es zu handhaben. Aber gibt es einen bevorzugten Weg? Ist das ineffizient, weil es kein unbedingt vorhersagbares Muster von Zelle zu Zelle hat?

+0

Ich würde InAppSettingsKit empfehlen wie erwähnt in [@Wayne Hartman Antwort] (http://stackoverflow.com/a/17495359/795339).Aber wenn Sie das von Grund auf neu erstellen würden, würde ich die Tabellenansicht in einem Storyboard erstellen und eine wiederverwendbare Prototypzelle für jeden unterschiedlichen Feldtyp erstellen - eine Prototypzelle für ein Textfeld, eine für einen Schalter usw. Jeder Prototyp-Zelle wäre eine andere Unterklasse von 'UITableViewCell' und implementiert ein von Ihnen definiertes Protokoll mit Eigenschaften für den Namen der Marke und möglicherweise dem Namen eines Schlüssels in Ihrem Einstellungswörterbuch, an den das Feld gebunden werden soll. –

Antwort

15

Ich mag nicht die Idee, dass ich den Code von jemand anderem debuggen muss, wenn ich etwas darin nicht mag. Deshalb versuche ich Code selbst zu schreiben und dann zu sehen, ob er meinen Bedürfnissen entspricht oder nicht. Wenn nicht, würde ich mir InAppSettingsKit ansehen.

Was Sie gefragt haben, ist ein sehr einfaches Zeug, und ich habe in fast jeder App von mir, d. H. UITableView mit Optionen implementiert.

so würde ich es machen. Sie können dies alles direkt in xcode tun.

  • Erstellen einer UITableView-Controller
  • es eine Navigationssteuerung machen. Damit können Sie auf sie wie „Einstellungen“
  • Ändern es zu statischen Zellen
  • Dann ist es mit Wort auf gruppierte Zellen hinzufügen Überschrift ändern
  • Erstellen Sie so viele Gruppen, wie Sie
  • Für jede Zelle müssen Schalter hinzufügen, benötigt
  • Hinzufügen Fußzeile und Kopfzeile zu jeder Gruppierung
  • Fügen Sie schöne Bilder neben jeder Option, wie Sie möchten.

Ich hoffe, das hilft. Hier ist einer meiner Beispiel-Projekteinstellungen Screenshot. Sie können die von mir erstellte Kopf- und Fußzeile nicht sehen.

enter image description here

+0

Wie bekommen Sie die richtige Pfeilmarkierung? – Bhargav

+1

@Bhargav Im Storyboard können Sie die Zelle auswählen und ihr Zubehör zu ** Disclosure Indicator ** ändern. –

4

Da Sie dies für Einstellungen verwenden, haben Sie in Betracht gezogen InAppSettingsKit?

In Fällen, in denen dies möglicherweise zu viel ist, habe ich eine statische Tabellenansicht in einem Storyboard erstellt, wo ich jede einzelne Einstellung erstellen und die Entwurfszeit steuern kann.