как показать предложение для поиска UISearchBar?

Я делаю демонстрационное приложение Weather, и внутри него я использую UISearchBar, поэтому пользователь может ввести имя города, но я не знаю, как отобразить предложение для этого.

Например, если пользователь вводит «lon», тогда должно быть название города, предлагающее начать с «lon», например Лондон и т. д.


person Lalit Kumar    schedule 01.04.2015    source источник
comment
вы говорите о показе данных или просмотре?   -  person Retro    schedule 01.04.2015
comment
Оба. Как получить данные из списка названий городов и показать их. Я хочу показать эти данные в TableView, но если есть другой способ, это хорошо.   -  person Lalit Kumar    schedule 01.04.2015
comment
поскольку у вас есть панель поиска, также используйте searchtableview, вы можете фильтровать данные по типу пользователя и отображать в таблице.   -  person Retro    schedule 01.04.2015
comment
спасибо ... но как я могу использовать searchtableview   -  person Lalit Kumar    schedule 01.04.2015


Ответы (2)


UISearchBar имеет собственный протокол делегирования UISearchBarDelegate, метод -

-(BOOL)searchBar:(UISearchBar *)searchBar
shouldChangeTextInRange:(NSRange)range
  replacementText:(NSString *)text

сделать возможным при редактировании выполнять некоторые дополнительные операции, здесь вы можете поставить свой NSPredicate, чтобы увидеть, имеет ли вставленный текст город, который BEGINSWITH или CONTAINS введенного текста.

person Andrea    schedule 01.04.2015

Вы можете сделать это,

  1. создать массив (список) мест для показа... добавить объект в массив!

    NSArray *list;

    NSArray *listFiles;

2.Отфильтровать содержимое..

-(void)filter :(NSString *) match1


    listFiles = [[NSMutableDictionary alloc] init];

    NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"FullName BEGINSWITH[c] %@", match1];

    listFiles = [[ContactDect filteredArrayUsingPredicate:sPredicate ] mutableCopy];
    f_name_array=[[NSMutableArray alloc]init];

    for (NSDictionary *d in listFiles) {

        [self.f_name_array addObject:[d objectForKey:@"FullName"]];

    }
    list=f_name_array;
    NSLog(@"%@",list);



}
  1. затем подсчитайте список в numberOfRowsInTableview:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [listFiles count]; }

  1. ячейкаForRow ::::

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"abccell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; cell.textLabel.text = [NSString stringWithFormat:@"%@" ,[listFiles objectAtIndex:indexPath.row]]; return cell; }

Вызовите метод Filter при редактировании textFeild !

[self filter:textfeild1.text];

Желаю тебе помочь.....

person Devang Goswami    schedule 01.04.2015
comment
спасибо .... теперь работает .... но как я могу получить список лучших городов или мне нужно ввести название каждого города? - person Lalit Kumar; 01.04.2015