"selectAnnotation:annotation animated:YES" работает только при первом выделении любой ячейки
Вступление:
Я сделал приложение, где пользователь может искать конкретное место на карте. У меня есть mapView и представление списка, которое содержит UITableView, в котором я отобразил названия мест (результатов поиска), проанализированных из Google API.
Моя проблема:
Здесь моя проблема заключается в том, что когда я выбираю конкретную ячейку таблицы, в соответствии с именем место должно быть сфокусировано в mapView с его аннотацией, и аннотацию СЛЕДУЕТ выбирать автоматически. Поэтому я сделал этот код. Также я работаю, когда я делаю первый выбор, а также когда я делаю новый поиск, но со второго выбора он никогда не работает. (То есть)
1. Аннотационные работы
2. Масштабирование работает
3.Но из второго выберите "selectAnnotation: anotation animated: YES" НЕ РАБОТАЕТ. Пожалуйста, помогите решить эту проблему.
Заранее спасибо.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView reloadData];
[mapView removeAnnotation:annotation];
annotation = [[MKPointAnnotation alloc]init];
NSDictionary *searchResults1 = [LocationDetails objectAtIndex:indexPath.row];
annotation.title = [searchResults1 valueForKey:@"name"];
annotation.subtitle=[searchResults1 valueForKey:@"formatted_address"];
annotation.coordinate= CLLocationCoordinate2DMake([[searchResults1 valueForKey:@"lat"] doubleValue], [[searchResults1 valueForKey:@"lng"] doubleValue]);
[mapView selectAnnotation:annotation animated:YES];
[mapView addAnnotation:annotation];
[mapView setRegion: MKCoordinateRegionMakeWithDistance(annotation.coordinate, 1000, 1000) animated:YES];
[tableView removeFromSuperview];
}
1 ответ
Добавьте этот код в ваш searchBarSearchButtonClicked: следующим образом:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBarr
{
for(annotation in mapView.annotations)
{
[mapView selectAnnotation:annotation animated:NO];
}
searchData = searchBarr.text;
Ваша ошибка заключалась в том, что вы не установили анимированное значение для selectAnnotation:animated:
в NO
, Следовательно, это показывает последнюю аннотацию. Который активен.