2

我試圖通過使用MKLocalSearch搜索地址,但它只是提供業務而不是像地圖(Apple's App)那樣的確切地址。如何使用MKLocalSearch搜索MKMap中的地址

我希望你們能幫助我 - 謝謝! :)

MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init]; 
request.naturalLanguageQuery = query; 
request.region = self.mapView.region; 

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 
self.localSearch = [[MKLocalSearch alloc] initWithRequest:request]; 

[self.localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){ 

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 

    if (error != nil) { 
     [[[UIAlertView alloc] initWithTitle:@"Map Error" 
            message:[error description] 
            delegate:nil 
          cancelButtonTitle:@"OK" 
          otherButtonTitles:nil] show]; 
     return; 
    } 

    self.results = response; 

`

回答

0

在結果陣列,它的類型的MKMapItem您需要配置細胞給你的地址時的tableView提出了自己。這是一個簡單的例子。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let IDENTIFIER = "CellID" 
    let cell = tableView.dequeueReusableCellWithIdentifier(IDENTIFIER, forIndexPath: indexPath) as! UITableViewCell 

    // Configure the cell... 
    var item: MKMapItem = results[indexPath.row] 

    cell.textLabel?.text = item.placemark.name 
    cell.detailTextLabel?.text = item.placemark.addressDictionary["Street"] as? String 

    return cell 
} 

這一切都在您的cellForRowAtIndexPath方法中完成,該方法屬於UITableViewDataSource協議。

希望對你有所幫助,祝你好運!

相關問題