2009-06-25 3 views
5

Die Verwendung der Settings.app auf dem iPhone ist nicht so schwer. Tatsächlich erledigt Xcode die meiste Arbeit für Sie. Fügen Sie einfach das Settings.bundle zu Ihrem Projekt hinzu und schon haben Sie es fast kostenlos.Gibt es eine Bibliothek oder ein Framework zum Festlegen von Einstellungen in einer iPhone-Anwendung?

Im Moment entwickle ich eine Anwendung für das iPhone, die erfordert, dass der Benutzer mehrere "Formulare", meist Schlüssel-Wert-Paare, einige Schieberegler und mehrere modale Ansichten mit "Dropdown" -Menüs ausfüllen. So ähnlich ist die Aufgabe ähnlich wie die Einstellungen.app.

Die Formulare selbst zu erstellen ist meiner Meinung nach eine schwere Aufgabe, also frage ich mich, ob es einen Rahmen für diese Art von Aufgaben gibt. Leider sieht es so aus, als würde Apple keine eigene Lösung anbieten. Vielleicht kennt jemand ein Framework oder einen Artikel im Internet, der Best Practices beschreibt.

Falls Sie nicht verstehen, zu dem Muster, das ich mich beziehe, habe ich einen Screenshot gemacht: http://img.skitch.com/20090625-s8bf6ahybwe3cesd1id38h3nt.jpg

Antwort

1

Nun, wenn Sie Einstellungen tun dann würde ich vorschlagen, sie an der richtigen Stelle setzen und die Einstellungen. bündeln.

Ich denke, dass Sie Einstellungen vornehmen, die für Sie sehr wichtig sind, und es wäre eine schreckliche Benutzererfahrung, wenn sie weiter von der App zu den Einstellungen und wieder zurück springen müssten.

Wenn Sie sagen, die Aufgabe ist schwer - können Sie es ausarbeiten - wie ich es getan habe und es war nicht schwer.

Verwenden Sie ein UITableViewController

für jede Zelle, die Sie im Code zu setzen verwenden möchten ähnlich wie:

 cell.textLabel.text = @"Last name:"; 
     UIFont *labelFont = [UIFont systemFontOfSize:[UIFont labelFontSize]]; 
     CGSize textSize = [cell.textLabel.text sizeWithFont:labelFont]; 
     baseRect.origin.x = textSize.width+15; 
     baseRect.origin.y +=7; 
     baseRect.size.width = baseRect.size.width - textSize.width - 15; 
     baseRect.size.height = 23; 
     UITextField *textField = [[UITextField alloc] initWithFrame:baseRect]; 
     textField.keyboardType = UIKeyboardTypeAlphabet; 
     textField.returnKeyType = UIReturnKeyDone; 
     textField.clearButtonMode = UITextFieldViewModeWhileEditing; 
     textField.delegate = self; 
     textField.placeholder = @"last name"; 
     [textField addTarget:self action:@selector(lastNameChanged:) forControlEvents:UIControlEventAllEditingEvents]; 
     textField.tag = 182; 
     [cell.contentView addSubview:textField];  
     [textField release]; 

Das ist für mich gearbeitet hat, die Schnittstelle Sie sprechen zu reproduzieren - hier ist das Beispiel ein TextField - aber der gleiche Code hat sehr gut mit allen Kontrollen funktioniert.

+0

Verwenden Sie Ihre UITableViewCells nicht erneut? Wenn du tust, wie kannst du unterscheiden, welches deiner textfields lastNameChanged aufruft:? –

+0

Ja natürlich bin ich! - Das Tag im Textfeld sagt mir, welches Feld welches ist. Außerdem stelle ich sicher, dass alle Steuerelemente, die zu meiner Liste von Tags passen, entfernt werden, wenn die Zelle wiederverwendet wird. – Grouchal

0

Ich bin mir ziemlich sicher, wonach er fragt, ist ein Framework, das die Einstellungsschnittstelle aus der Datei settings.bundle neu erstellt, so dass Einstellungen sowohl in der Einstellungs-App als auch in Ihrer App vorgenommen werden können.

Ich weiß noch nichts von dem, aber ich könnte wirklich einen verwenden und ich habe darüber nachgedacht, einen zu schreiben.

2

Es ist besser, die Einstellungen in die App zu übernehmen, zumindest bis Apple es einfach macht, den Benutzer zu den Einstellungen und dann zurück zur App zu schicken. Wenn man sich die neuen 3.0 UITableViewCellStyles anschaut, gibt es einen Stil, der auf die Art von Zellen zugeschnitten ist - es wäre ziemlich einfach, einen einfachen Einstellungsbildschirm zu erstellen.

3

Nach vielen Recherchen gelang es mir nicht, eine gute Antwort auf meine erste Frage zu bekommen. Aber jetzt stolperte ich über dieses Repository auf GitHub: mySettings

+0

Auf der mySettings Github-Seite: "mySettings ist nicht mehr in aktiver Entwicklung". Das letzte Commit ist von Jan 2010. –

Verwandte Themen