Кто-нибудь знает, как искать аннотации на MKMapView с UISearchBar? - PullRequest
0 голосов
/ 31 марта 2011

Я искал часы и ничего не нашел

Также кто-нибудь может сказать мне, если они знают, как связать ячейку в сгруппированном uiTableView с определенным DetailView и связать другую ячейку с другим DetailView?

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Для карты, куда бы я поместил код поиска и если это мои аннотации.

- (void)viewDidLoad {
    [super viewDidLoad];

    [mapView setMapType:MKMapTypeStandard];
    [mapView setZoomEnabled:YES];
    [mapView setScrollEnabled:YES];


    // Central Alabama Chapter

    MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
    region.center.latitude = 33.45606;
    region.center.longitude = -86.83078;
    region.span.longitudeDelta = 0.01f;
    region.span.latitudeDelta = 0.01f;

    [mapView setRegion:region animated:YES]; 

    [mapView setDelegate:self];

    DisplayMap *ann = [[DisplayMap alloc] init]; 
    ann.title = @"Central Alabama Chapter";
    ann.subtitle = @"721 Hillmoor Lane Homewood, Alabama 35209"; 
    ann.coordinate = region.center; 
    [mapView addAnnotation:ann];


    // Walnut Ridge Fire Department

    MKCoordinateRegion region1 = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
    region1.center.latitude = 36.11493;
    region1.center.longitude = -90.95695;
    region1.span.longitudeDelta = 0.01f;
    region1.span.latitudeDelta = 0.01f;



    DisplayMap *ann1 = [[DisplayMap alloc] init]; 
    ann1.title = @"Walnut Ridge Fire Department";
    ann1.subtitle = @"3217 Highway 67 # B, Walnut Ridge, AR"; 
    ann1.coordinate = region1.center; 
    [mapView addAnnotation:ann1];

Для сгруппированного UITableView, где и как мне использовать этот код, если код, который у меня естькак это:

- (void)viewDidLoad {
    [super viewDidLoad];

    //Initialize the array.
    listOfItems = [[NSMutableArray alloc] init];

    NSArray *sectionOneArray = [NSArray arrayWithObjects:@"Mission Statement", @"Become a Member", @"Bible Ministries", @"FCFi on Facebook", @"Chapter Kit (PDF)", @"Corporate Members", @"FDIC Indianapolis", @"9/11/2001", nil];

    NSArray *sectionTwoArray = [NSArray arrayWithObjects:@"About", @"Developer", nil];

    NSArray *websiteArray = [NSArray arrayWithObjects:@"FCFi Website", nil];

    [listOfItems addObject:sectionOneArray];
    [listOfItems addObject:sectionTwoArray];
    [listOfItems addObject:websiteArray];

    //Set the title
    self.navigationItem.title = @"More";
}
0 голосов
/ 31 марта 2011

поиск аннотации-

Зависит от того, как вы хотите найти аннотацию, если вы хотите искать ее по названию, то сначала получите всю аннотацию, используя свойство аннотации MKMapView как -

NSArray *arr = [mapView annotations];

for(int i=0; i<[arr count]; i++)
{ 
     MKAnnotation *ann = [arr objectAtIndex:i];
     if([ann.title isEqualToString:[searchBar text]])
     {
         //do what you want to do after getting a annotation
     }
}

UITableView -

Если вы хотите сделать ссылку на нажатие на ячейку, вы можете сделать это в

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

, сначала для таблицы групп проверьте indexPath.section, а затемпроверить indexPath.row.

...