2009-03-31 6 views
1

Ich erstelle eine iPhone-App, die eine ähnliche Schnittstelle zur nativen Kontaktauswahl des iPhones haben soll, d. H. Eine alphabetische Liste, durch die man scrollen kann, mit einem Suchbalken oben, der die Liste eingrenzt. Insbesondere möchte ich in der Lage sein, die Buchstaben des Alphabets an der Seite zu zeigen, so dass Sie beim Scrollen durch die Liste Ihre Position im Alphabet in der Bildlaufleiste sehen. Das Problem besteht darin, dass meine Daten im Grunde aus Schlüssel-Wert-Paaren bestehen und nicht aus Kontaktdaten, so dass ich den nativen Kontaktpicker nicht einfach verwenden kann.Wie erstelle ich eine Scrollleiste im Wörterbuchstil für das iPhone (wie in der Kontaktliste)?

Soweit ich sehen kann, habe ich zwei Möglichkeiten zu erreichen, was ich will:

  1. die ABPeoplePickerNavigationController Klasse verwenden und es hacken ein Adressbuch zu verwenden, das ich mich mit nicht-Adresstyp Daten füllen. Das Problem dabei ist, dass das Adressbuch standardmäßig mit den Kontakten vom iPhone gefüllt wird, sodass ich jedes Mal, wenn die App geöffnet wird, diese Kontakte leeren und meine eigene Liste erstellen muss. (Ganz zu schweigen von anderen Problemen, die mit der Verwendung einer Schnittstelle verbunden sind, die an eine bestimmte Datenstruktur gebunden ist)
  2. Verwenden Sie eine UISearchBar und UIScrollView. Das wäre in Ordnung, aber ich bin mir nicht sicher, wie ich etwas mit der Bildlaufleiste machen soll, außer die Farbe zu ändern - ich kann nicht sehen, wie man den Inhalt überschreibt.

Irgendwelche Ratschläge, welche ist der einfachste Weg? Was sind die Fallstricke (besonders von 1)?

Antwort

2

Um die Buchstaben auf die Seite zu bekommen, können Sie einfach eine Methode -sectionIndexTitlesForTableView: in Ihrer Tabellenansicht Datenquelle angeben. Was die Suche betrifft, gibt es dort etwas mehr Arbeit, und es ist sehr abhängig von Ihren Daten. Eine UISearchBar ist der Startpunkt.

0

Für eine Suchleiste, sehen Sie sich TTSearchBar in der Three20 library.

Alles andere kann einfach mit UITableView implementiert werden.

Verwandte Themen