2012-06-28 13 views
5

Podría alguien darme un punto en la dirección correcta sobre cómo debo hacer esto:Búsqueda en una lista de ciudades

enter image description here

Esta muestra desde el canal del tiempo muestra lo que me gustaría hacer. Solo quiero tener una vista de tabla en la que alguien pueda buscar una ciudad. No estoy seguro de dónde obtener esos recursos y cómo hacerlo.

+0

Mire en el UISearchDisplayController. En realidad, es una vista de tabla que leen de una lista de ciudades. :) Enlace a la documentación de apple: [UISearchDisplayController] (http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UISearchDisplayController_Class/Reference/Reference.html) Ah, y si no me equivoco, Estoy ejecutando la versión beta de iOS 6 que veo. (La barra de navegación lo regala.) – erran

+0

@ipwnstuff ¡Oooops! Editado la imagen gracias: P y, ¿acaso sabes por casualidad qué fuente están usando? – sridvijay

+0

No tengo idea, pero @Greg Wang agregó una lista. – erran

Respuesta

2

Puede encontrar la Lista de ciudades del mundo en MaxMind.

¿Es el recurso que está buscando?

1

Crear vista de tabla y barra de búsqueda. Tienes que implementar sus delegados 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]; 
} 

Tengo métodos incompletos y puede implementar lo que desea hacer.

Creo que será útil para usted.

Cuestiones relacionadas