向所有 MKMapView 代理方法添加 blocks,通过一个简单易用的分类实现,无需子类化。如果在某个特定方法中没有设置 block,也可以使用代理方法。
[self.mapView setMapViewWillStartLoadingMapBlock:^(MKMapView *mapView) {
NSLog(@"will start loading map");
}];
[self.mapView setMapViewDidFailLoadingMapBlock:^(MKMapView *mapView, NSError *error) {
NSLog(@"failed with error %@",error);
}];
[self.mapView setMapViewDidFinishLoadingMapBlock:^(MKMapView *mapView) {
NSLog(@"did finish loading map");
}];
[self.mapView setMapViewViewForAnnotationBlock:^MKAnnotationView *(MKMapView *mapView, id<MKAnnotation> annotation) {
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return nil;
}
MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"mapAnnotation"];
if (annotationView == nil) {
annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"mapAnnotation"];
}
annotationView.pinColor = MKPinAnnotationColorGreen;
return annotationView;
}];
尚未在 Mac 应用上测试。欢迎提交错误修复和新功能请求的 pull-request。
MIT 许可协议
版权所有 (c) 2014 Håkon Bogen
以下是对此软件及关联文档文件的副本(“软件”)的副本(“软件”)以任何形式无需付费,任何获得该副本的个人均可获得允许,包括(但不限于)使用、复制、修改、合并、发布、分发、再许可及/或出售软件的副本,以及允许有权获得该软件的个人使用上述软件,前提是遵守以下条件
必须在所有副本或实质性部分中包含上述版权声明和许可声明。
本软件按照“现状”提供,不考虑任何保证,明示或暗示的,包括但不限于对适用性、特定用途及非侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他诉讼责任负责,无论这些索赔、损害或其他责任是根据合同、侵权或其它原因引起的,即使在软件开发、使用或其他交易过程中或许可方已知上述索赔、损害或其他责任的存在。