问候, 我已经进入iOS只有1.5个月了,我希望我不会问一个已在这里得到解答的问题。这是:
我有tableview列出了一些持续时间,每个持续时间属于一个包含时间戳坐标的叠加层:
for (NSUInteger i = 0; i < [dataset count]; i++)
{
crumbPath = [[CrumbPath alloc] initWithCenterCoordinate:mapView.userLocation.coordinate]; //crumbPath is my overlay
NSDictionary *route = [dataset objectAtIndex:i];
NSArray *points = [route objectForKey:@"Points"];
for (NSUInteger j = 0; j < [points count]; j++)
{
NSDictionary *point = [points objectAtIndex:j];
float latitude = (float)([[point objectForKey:@"Latitude"] doubleValue]/1000000);
float longitude = (float)([[point objectForKey:@"Longitude"] doubleValue]/1000000);
CLLocationCoordinate2D tempCoord = CLLocationCoordinate2DMake(latitude, longitude);
[crumbPath addCoordinate:tempCoord];
}
[mapView addOverlay:crumbPath];
[crumbPath release];
}
据我所知,我可以在我的tableview上列出持续时间,我现在要做的是,使用tableView:didSelectRowAtIndexPath方法我想,显示在tableview上点击其持续时间的叠加层。现在,我的叠加层全部显示在mapview上,我想只显示所选的一个。
提前致谢!
阿里
答案 0 :(得分:1)
对我遗忘的问题发表答案。
在tableView:didSelectRowAtIndexPath:
内,我首先删除了所有叠加层,然后添加了从表格视图中获取索引的所选叠加层。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.mapView removeOverlays:crumbs]; //crumbs - overlay array
[self.mapView addOverlay:[crumbs objectAtIndex:[indexPath row]]];
}
答案 1 :(得分:0)
- (void)removeOverlay:(id < MKOverlay >)overlay
可用于删除您不想再显示的内容。