2013-07-16 6 views
5

Ich mag, eine Ansicht erstellen möchten iOS Kontakt App hat,Index wie iOS Kontakt App

Grundsätzlich ich will, ist, Vertikal ABCDEFG...., die auf der rechten Seite Seite dieses Bildes befindet, wenn Benutzer M auf Zeichen klickt möchte ich Charakter erhalten M Wie soll ich das erreichen? Gibt es irgendein iOS Steuerelement, das mir dieses `ABCDEF ... gibt?

Danke in advnace.

EDIT

+0

Möchten Sie ein benutzerdefiniertes UITableView mit einem Index erstellen oder möchten Sie nur den integrierten Kontaktwähler anzeigen? – Fogmeister

+0

Ich möchte nicht benutzerdefinierte Tabellenansicht erstellen, ich möchte nur ABCDEF ..., die auf der rechten Seite befindet. Wie heißt diese Kontrolle? ist das Kontaktwähler ?? – Krunal

+0

Haben Sie eine Tabellenansicht mit Ihren eigenen Daten? Oder benutzen Sie den Kontaktwähler? Bitte erklären Sie, was Sie wollen, sonst haben wir keine Ahnung. Das Steuerelement, auf das Sie sich beziehen, ist ein Teil von 'UITableView', wenn Sie kein' UITableView' haben, dann können Sie das nicht bekommen, ohne das ganze selbst von Grund auf neu zu schreiben. – Fogmeister

Antwort

12

Sie müssen diese beiden Methoden implementieren:

// return list of section titles to display in section index view (e.g. "ABCD...Z#") 
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;              
// tell table which section corresponds to section title/index (e.g. "B",1)) 
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index; 

mit der entsprechenden Datenquelle:

Zum Beispiel, wenn Sie einen Array mit

`@"Cat", @"Mouse", @"Dog", @"Horse", @"Duck", @"Monkey"` 

dann würden Sie zurückkehren und Array für sectionIndexTitlesForTableView als:

`@[@"C", @"D", @"H", @"M"]` 

weil @"Dog" und @"Duck" für @"D", @"Mouse" geht und @"Monkey" geht für @"M" und so weiter.

Und natürlich für sectionForSectionIndexTitle, kehren Sie den entsprechenden Index für diesen Index. (1 für @"D", 3 für @"M" usw.)

+0

ich will voll 'ABCD ...' muss ich so schreiben ?? '- (NSArray *) sectionIndexTitlesForTableView: (UITableView *) tableview { return [NSArray arraywithobjects: @ "A" @ "B", @ "C", @ "D", @ "D", .... nil ]; } 'und wie man ausgewähltes Zeichen holt ?? – Krunal

+0

ja, das ist richtig.Zum Abrufen der ersten Zeichen können Sie es selbst machen (es ist nicht so schwer) oder wenn Sie bereits ein 'NSArray' oder' NSFetchedResultsController' haben, können Sie sie mit einem 'NSPredicate' bekommen, obwohl ich nicht sicher bin für 'NSArray' wie es gemacht wird, da ich diese Methode nicht mag. Ich mache es gerne alleine, um mehr Kontrolle zu haben. –

+0

Ich habe das versucht, ich bekomme volle 'ABCDE ...', jetzt, wenn ich auf searchicon klicke, was ein erstes Zeichen ist, dann wird die Suchleiste nicht angezeigt .... siehe meine ** EDIT ** in der Frage – Krunal