iOS MBMapkit  v1.0 beta
公有成员
<MBMapViewDelegate>协议参考

MBMapViewDelegate协议定义了一组可选的方法让你可以接收到地图相关的更新信息。因为很多地图操作需要MBMapView类异步 加载数据,当指定的操作完成后地图视图调用这些方法通知你的应用。地图视图也会调用这些方法来请求标注和覆盖层的视图同时管理 这些视图的交互。在释放MBMapView对象前,如果你设置了委托,记得把对象的委托属性设为nil。在你调用销毁地图视图的dealloc 函数时可以执行前面所说的操作。 更多...

#import <MBMapView.h>

所有成员的列表。

公有成员

(void) - mapView:regionWillChangeAnimated:
 通知委托地图视图显示的范围将要改变。
(void) - mapView:regionDidChangeAnimated:
 通知委托地图显示的范围刚改变。
(void) - mapViewWillStartLoadingMap:
 通知委托指定的地图视图将要请求一些地图数据。
(void) - mapViewDidFinishLoadingMap:
 通知委托指定的地图视图成功的加载了需要的地图数据。
(void) - mapViewDidFailLoadingMap:withError:
 通知委托指定的地图视图不能加载地图数据。
(MBAnnotationView *) - mapView:viewForAnnotation:
 返回与指定标注对象关联的视图。
(void) - mapView:didAddAnnotationViews:
 通知委托一个或多个标注视图被添加到地图。
(void) - mapView:annotationView:calloutAccessoryControlTapped:
 通知委托用户点击了一个标注视图的附加按钮。
(void) - mapView:didSelectAnnotationView:
 通知委托其中一个标注视图被选择了。
(void) - mapView:didDeselectAnnotationView:
 通知委托其中一个标注视图被取消选择了。
(void) - mapViewWillStartLocatingUser:
 通知委托地图视图将要开始跟踪用户的位置。
(void) - mapViewDidStopLocatingUser:
 通知委托地图视图停止跟踪用户的位置。
(void) - mapView:didUpdateUserLocation:
 通知委托用户的位置已更新。
(void) - mapView:didFailToLocateUserWithError:
 通知委托尝试定位用户的位置失败。
(void) - mapView:annotationView:didChangeDragState:fromOldState:
 通知委托其中一个标注视图的状态改变了。
(MBOverlayView *) - mapView:viewForOverlay:
 当需要显示指定覆盖层对象时向委托请求覆盖层视图。
(void) - mapView:didAddOverlayViews:
 通知委托一个或多个覆盖层视图被添加到地图。

详细描述

MBMapViewDelegate协议定义了一组可选的方法让你可以接收到地图相关的更新信息。因为很多地图操作需要MBMapView类异步 加载数据,当指定的操作完成后地图视图调用这些方法通知你的应用。地图视图也会调用这些方法来请求标注和覆盖层的视图同时管理 这些视图的交互。在释放MBMapView对象前,如果你设置了委托,记得把对象的委托属性设为nil。在你调用销毁地图视图的dealloc 函数时可以执行前面所说的操作。


成员函数文档

- (void) mapView: (MBMapView *)  mapView
annotationView: (MBAnnotationView *)  view
calloutAccessoryControlTapped: (UIControl *)  control 
[optional]

通知委托用户点击了一个标注视图的附加按钮。

参数:
mapView包含指定标注视图的地图视图。
view按钮被点击的标注视图。
control被点击的控件。
注解:
附加视图包含自定义内容并且放置在标注标题文本的两边。如果你指定的视图是UIControl类的派生,任何用户点击你的视图时地图 视图将调用本方法。你可以调用本方法来响应与控件关联的任何操作。例如,如果你的控件显示标注额外的信息,你应该调用本方法来 展示一个包含那个信息的标准面板。
如果你自定义的视图不是UIControl类的派生,地图视图将不会调用本方法。
- (void) mapView: (MBMapView *)  mapView
annotationView: (MBAnnotationView *)  view
didChangeDragState: (MBAnnotationViewDragState)  newState
fromOldState: (MBAnnotationViewDragState)  oldState 
[optional]

通知委托其中一个标注视图的状态改变了。

参数:
mapView包含指定标注视图的地图视图。
view拖动状态改变了的标注视图。
newState标注视图的新状态。
oldState标注视图先前的状态。
注解:
拖动状态一般回应用户和标注视图的交互而改变。然而,标注视图自己也会负责状态改变状态。
- (void) mapView: (MBMapView *)  mapView
didAddAnnotationViews: (NSArray *)  views 
[optional]

通知委托一个或多个标注视图被添加到地图。

参数:
mapView添加了标注视图的地图视图。
views一组被添加的表示视图的MBAnnotaitionView对象。
注解:
本方法调用的时候,指定的视图已经添加到了地图。
- (void) mapView: (MBMapView *)  mapView
didAddOverlayViews: (NSArray *)  overlayViews 
[optional]

通知委托一个或多个覆盖层视图被添加到地图。

参数:
mapView添添加了覆盖层的地图。
overlayViews一组被添加的表示视图的 MBOverlayView 对象。
注解:
本方法调用的时候,指定的视图已经添加到了地图。
- (void) mapView: (MBMapView *)  mapView
didDeselectAnnotationView: (MBAnnotationView *)  view 
[optional]

通知委托其中一个标注视图被取消选择了。

参数:
mapView包含指定标注视图的地图视图。
view被取消选择的标注视图。
注解:
你可以调用本方法来跟踪标注视图的选择状态的改变。
- (void) mapView: (MBMapView *)  mapView
didFailToLocateUserWithError: (NSError *)  error 
[optional]

通知委托尝试定位用户的位置失败。

参数:
mapView正在跟踪用户位置的地图视图。
error包含为什么定位跟踪失败原因的错误对象。
- (void) mapView: (MBMapView *)  mapView
didSelectAnnotationView: (MBAnnotationView *)  view 
[optional]

通知委托其中一个标注视图被选择了。

参数:
mapView包含指定标注视图的地图视图。
view被选择的标注视图。
注解:
你可以调用本方法来跟踪标注视图的选择状态的改变。
- (void) mapView: (MBMapView *)  mapView
didUpdateUserLocation: (MBUserLocation *)  userLocation 
[optional]

通知委托用户的位置已更新。

参数:
mapView正在跟踪用户位置的地图视图。
userLocation表示用户最新位置的位置对象。
注解:
showUserLocation属性被设为YES时,任何地图视图接收到位置更新时本方法都会被调用。
应用在后台运行时本方法不会被调用。如果你希望后台运行是仍能收到位置更新,你必须使用Core Location框架。
- (void) mapView: (MBMapView *)  mapView
regionDidChangeAnimated: (BOOL)  animated 
[optional]

通知委托地图显示的范围刚改变。

参数:
mapView可视范围已改变的地图视图。
animated如果YES,到新范围的变化是动画的。
注解:
任何当前可视范围改变时本方法都会被调用。滚动的时候本方法会被调用很多次来报告地图位置的更新。因此本方法的实现应尽可能的 轻量以避免影响滚动效率。
- (void) mapView: (MBMapView *)  mapView
regionWillChangeAnimated: (BOOL)  animated 
[optional]

通知委托地图视图显示的范围将要改变。

参数:
mapView可视范围将要改变的地图视图。
animated如果YES,将动画变到新范围。如果NO,改变将立刻生效。
注解:
任何当前可视范围改变时本方法都会被调用。滚动的时候本方法会被调用很多次来报告地图位置的更新。因此本方法的实现应尽可能的 轻量以避免影响滚动效率。
- (MBAnnotationView *) mapView: (MBMapView *)  mapView
viewForAnnotation: (id< MBAnnotation >)  annotation 
[optional]

返回与指定标注对象关联的视图。

参数:
mapView请求标注视图的地图视图。
annotation将被显示的标注对象。除了你自定义的标注,这个物体可能是表示用户当前位置的MBUserLocation对象。
返回:
表示自定义标注的标注视图,或者你希望显示一个标准标注视图时返回nil.
注解:
你应该调用MB"MBMapkit.h"类中的 dequeueReusableAnnotationViewWithIdentifier 方法来查看是否已有一个所请求的类型 标注视图,而不是每次调用本方法时都创建一个新的视图。如果一个真的存在,你需要更新视图来对应指定的标注的属性然后返回它。 如果想要的类型的视图不存在,你应该创建一个,用需要的标注数据配置然后返回它。
如果这个标注参数的对象是一个 MBUserLocation 的实例,你可以提供一个自定义的视图作为用户位置的标志。若要显示默认 系统视图来表示用户坐标,则返回nil.
如果你不实现本方法,或者你的实现中除了用户位置标注外的标注返回nil,地图视图将使用标准大头针标注视图。
- (MBOverlayView *) mapView: (MBMapView *)  mapView
viewForOverlay: (id< MBOverlay >)  overlay 
[optional]

当需要显示指定覆盖层对象时向委托请求覆盖层视图。

参数:
mapView请求覆盖层视图的地图视图。
overlay将被显示的覆盖层对象。
返回:
表示地图中指定覆盖层的视图。如果你返回nil,没有表示指定覆盖层对象的视图会被显示。
注解:
如果你支持显示覆盖层,你必须实现本方法同时提供覆盖层对象的视图。
- (void) mapViewDidFailLoadingMap: (MBMapView *)  mapView
withError: (NSError *)  error 
[optional]

通知委托指定的地图视图不能加载地图数据。

参数:
mapView已经开始加载操作的地图视图。
error地图数据不能加载的原因。
注解:
在设备不能访问网络或者因为某些原因不能加载地图数据的情况下本方法会被调用。在先前的地图块请求仍出于等待的时候又有另外一 个地图块请求进来了也可能调用本方法。你可以调用这个信息通知用户地图数据不可用。
- (void) mapViewDidFinishLoadingMap: (MBMapView *)  mapView [optional]

通知委托指定的地图视图成功的加载了需要的地图数据。

参数:
mapView已经开始加载操作的地图视图。
注解:
当前请求相关的地图块已被加载的时候本方法将被调用。当新的可视区域滚到视图但没有这块区域的地图块时将请求这些地图块。当前 地图中不可视的部分地图块也可能被请求。例如,地图视图可能需要立刻加载可视范围周围一圈的地图块来处理用户的移动操作。。
- (void) mapViewDidStopLocatingUser: (MBMapView *)  mapView [optional]

通知委托地图视图停止跟踪用户的位置。

参数:
mapView停止跟踪用户位置的地图视图。
注解:
当showsUserLocation属性变为NO时,本方法将被调用。
- (void) mapViewWillStartLoadingMap: (MBMapView *)  mapView [optional]

通知委托指定的地图视图将要请求一些地图数据。

参数:
mapView已经开始加载数据的地图视图。
注解:
任何需要从服务器下载一组新地图块的时候本方法将被调用。这一般发生在你通过移动缩放内容来浏览地图的时候。你可以调用本方法 来记录地图视图加载数据所需的时间。
- (void) mapViewWillStartLocatingUser: (MBMapView *)  mapView [optional]

通知委托地图视图将要开始跟踪用户的位置。

参数:
mapView正在跟踪用户位置的地图视图。
注解:
当showsUserLocation属性变为YES时,本方法将被调用。

该协议的文档由以下文件生成:
 全部  函数 变量 属性