2012-06-28 13 views
5

Könnte jemand geben Sie mir einen Punkt in die richtige Richtung, wie ich dies tun sollte:Suche eine Liste der Städte

enter image description here

Diese Probe aus dem Weather Channel zeigt, was würde ich tun. Ich möchte nur eine Tabellenansicht haben, in der jemand nach einer Stadt suchen könnte. Ich bin mir nicht sicher, wo ich diese Ressourcen bekomme und wie ich es mache.

+0

Schauen Sie in den UISearchDisplayController. Es ist tatsächlich eine Tabellenansicht, die sie aus einer Liste von Städten lesen. :) Link zu Apple's Dokumentation: [UISearchDisplayController] (http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UISearchDisplayController_Class/Reference/Reference.html) Oh, und wenn ich dich nicht irre Ich habe die iOS 6 beta gesehen. (Nav-Bar gibt es weg.) – erran

+0

@ipwnstuff Oooops! Editiert das Bild Danke: P und würdest du zufällig wissen welche Quelle sie benutzen? – sridvijay

+0

Ich habe keine Ahnung, aber @Greg Wang fügte eine Liste hinzu. – erran

Antwort

2

Sie können die World City List von MaxMind finden.

Ist es die Ressource, die Sie suchen?

1

Tabellenansicht und Suchleiste erstellen. Sie müssen ihre Delegierten implementieren UISearchBarDelegate,UITableViewDataSource,UITableViewDelegate.

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar1 
{ 

    searchBar.showsSearchResultsButton = YES; 
    searchBar.showsCancelButton = YES; 
    searchBar.autocorrectionType = UITextAutocorrectionTypeNo; 
    // flush the previous search content 
    //Implement some code 
} 
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar1 
{ 

    searchBar.showsCancelButton = NO; 
    searchBar.showsSearchResultsButton = NO; 
} 
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 

    if([searchText isEqualToString:@""]||searchText==nil){ 
     [yourTable reloadData]; 
     return; 
    } 
    NSInteger counter = 0; 
    for(NSString *name in yourArray) 
    { 
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init]; 
     NSRange r = [name rangeOfString:searchText options:NSCaseInsensitiveSearch]; 
     // NSRange r = [name rangeOfString:searchText]; 
     // NSRange r = [name ]; 
     if(r.location != NSNotFound) 
     { 
      //Implement the code. 
     } 
     counter++; 
     [pool release]; 
    } 
    [yourTable reloadData]; 
} 
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar1 
{ 

    // if a valid search was entered but the user wanted to cancel, bring back the main list content 
    // Implement some code 
    @try{ 
     [yourTable reloadData]; 
    } 
    @catch(NSException *e){ 
    } 
    [searchBar resignFirstResponder]; 
    searchBar.text = @""; 
} 
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar1 
{ 

    [searchBar1 resignFirstResponder]; 
} 

Ich habe Ihnen unvollständige Methoden geben und Sie können implementieren, was Sie tun möchten.

Ich denke, es wird Ihnen hilfreich sein.

Verwandte Themen