MBMapkit
|
MBAnnotationView 类负责使标注在地图视图中可视。标注视图和标注对象是不精确配对的。当标注的坐标点在可视范围时,地图 视图请求自己的委托提供对应的标注视图。稍后标注视图可能被回收,被放到一个由地图视图保持的复用队列中。
设置标注视图的 image 属性是最有效的提供标注内容的方法。标注视图根据你指定的图片自动设置自己的大小,其内容绘制为图 片。因为这是一个视图,所以你还可以重写 drawRect: 方法来手动绘制视图的内容。如果你选择直接重写 drawRect: 方法并且 你没有给 image 属性指定自定义的图片,请注意标注视图的框架的宽度和高度默认设置为0。在你自定义的内容被绘制前,你必须修 改视图框架属性使宽度和高度为非零值。一般来说,如果你的内容只是静态的图片,如果有需要改变 image 属性比你自己绘制图片 效率更高。
标注视图一直固定在地图视图中关联的标注指定点。虽然标注视图随地图滚动,标注视图位于一个独立的显示层,当地图的可视范 围变化时标注视图并不会缩放。
标注视图支持选择状态,这决定视图是未选中、选中还是选中同时显示弹出气泡。用户通过和标注视图的交互来切换选择状态。在 未选中状态,标注视图不高亮显示。在选中状态,标注视图高亮但不显示弹出气泡。最终,标注可以同时高亮并显示弹出气泡。弹出视 图显示标题字符串,控制显示更多的信息。标题的信息由标注对象提供,标注视图负责提供自定义的控件。
更多...
#import <MBAnnotationView.h>
公有成员 | |
(id) | - initWithAnnotation:reuseIdentifier: |
初始化并返回一个新的标注视图。 | |
(void) | - prepareForReuse |
当视图被移动到复用队列时调用。 | |
(void) | - setSelected:animated: |
设置标注视图的选择状态。 | |
(void) | - setDragState:animated: |
设置标注视图当前的拖动状态。 | |
属性 | |
NSString * | reuseIdentifier |
标识这个标注视图可复用的字符串。 | |
id< MBAnnotation > | annotation |
当前和视图关联的标注对象。 | |
UIImage * | image |
标注视图显示的图片。 | |
CGPoint | centerOffset |
显示视图时的偏移量(像素单位)。 | |
CGPoint | calloutOffset |
放置弹出气泡的偏移量(像素单位)。 | |
BOOL | enabled |
指示标注是否启用的布尔值。 | |
BOOL | highlighted |
指示标注视图是否高亮的布尔值。 | |
BOOL | selected |
指示标注视当前是否被选中的布尔值。 | |
BOOL | canShowCallout |
指示标注视图能否弹出气泡显示额外的信息。 | |
UIView * | leftCalloutAccessoryView |
标准弹出气泡左侧显示的视图。 | |
UIView * | rightCalloutAccessoryView |
标准弹出气泡右侧显示的视图。 | |
BOOL | draggable |
指示标注视图是否能被拖动的布尔值。 | |
MBAnnotationViewDragState | dragState |
标注视图当前的拖动状态。 |
MBAnnotationView 类负责使标注在地图视图中可视。标注视图和标注对象是不精确配对的。当标注的坐标点在可视范围时,地图 视图请求自己的委托提供对应的标注视图。稍后标注视图可能被回收,被放到一个由地图视图保持的复用队列中。
设置标注视图的 image 属性是最有效的提供标注内容的方法。标注视图根据你指定的图片自动设置自己的大小,其内容绘制为图 片。因为这是一个视图,所以你还可以重写 drawRect: 方法来手动绘制视图的内容。如果你选择直接重写 drawRect: 方法并且 你没有给 image 属性指定自定义的图片,请注意标注视图的框架的宽度和高度默认设置为0。在你自定义的内容被绘制前,你必须修 改视图框架属性使宽度和高度为非零值。一般来说,如果你的内容只是静态的图片,如果有需要改变 image 属性比你自己绘制图片 效率更高。
标注视图一直固定在地图视图中关联的标注指定点。虽然标注视图随地图滚动,标注视图位于一个独立的显示层,当地图的可视范 围变化时标注视图并不会缩放。
标注视图支持选择状态,这决定视图是未选中、选中还是选中同时显示弹出气泡。用户通过和标注视图的交互来切换选择状态。在 未选中状态,标注视图不高亮显示。在选中状态,标注视图高亮但不显示弹出气泡。最终,标注可以同时高亮并显示弹出气泡。弹出视 图显示标题字符串,控制显示更多的信息。标题的信息由标注对象提供,标注视图负责提供自定义的控件。
标注视图被设计成在用户改变地图可视范围能够被复用。地图视图的复用通过在滚动地图时避免创建新的视图显著地提高了性能。由于 这个原因,标注视图不会和它关联的标注紧密连接。使用地图视图的属性(或者设置方法)来配置新标注对象的视图。
任何你初始化标注视图的时候,你总需要给视图指定一个复用标识符。一旦标注视图不再被需要,地图视图可能把它们放到一个复 用队列。一旦新的标注被添加到地图视图,然后委托对象可以调用 MBMapView的dequeueReusableAnnotationViewWithIdentifier 方法让一个已有的视图出列(而不是创建一个新的)并重新配置。
你可以直接调用现有的 MBAnnotationView 类,或者如果有需要子类化 MBAnnotationView 来提供自定义行为。 MBAnnotationView 类的 image 属性允许你可以不子类化而直接设置标注视图的显示。为了方便起见你也可以创建自定义的子类,把标注视图设为一个已知 的状态。
子类化 MBAnnotationView 没有特殊的要求。不过下面的列表列出了一些你可能希望子类化的原因,以及一些在实现期望行为时 需要重写的方法。
- (id) initWithAnnotation: | (id< MBAnnotation >) | annotation | |
reuseIdentifier: | (NSString *) | reuseIdentifier | |
初始化并返回一个新的标注视图。
annotation | 和新视图关联的标注对象。 |
reuseIdentifier | 如果你打算给相似类型的标注复用这个标注视图,指定一个字符串来标识它。即使你不打算复用视图可以 指定为nil,但一般还是推荐复用标注视图。 |
- (void) prepareForReuse |
当视图被移动到复用队列时调用。
- (void) setDragState: | (MBAnnotationViewDragState) | newDragState | |
animated: | (BOOL) | animated | |
设置标注视图当前的拖动状态。
newDragState | 标注视图新的拖动状态。 |
animated | 如果YES,到新拖动状态的变化是动画的,否则将没有动画。 |
- (void) setSelected: | (BOOL) | selected | |
animated: | (BOOL) | animated | |
设置标注视图的选择状态。
selected | 如果希望视图被选中设为YES。 |
animated | 选择状态的改变是动画的设为YES。 |
- (id<MBAnnotation>) annotation [read, write, retain] |
当前和视图关联的标注对象。
- (CGPoint) calloutOffset [read, write, assign] |
放置弹出气泡的偏移量(像素单位)。
- (BOOL) canShowCallout [read, write, assign] |
指示标注视图能否弹出气泡显示额外的信息。
- (CGPoint) centerOffset [read, write, assign] |
显示视图时的偏移量(像素单位)。
- (BOOL) draggable [read, write, assign] |
指示标注视图是否能被拖动的布尔值。
- (MBAnnotationViewDragState) dragState [read, write, assign] |
标注视图当前的拖动状态。
- (BOOL) enabled [read, write, assign] |
指示标注是否启用的布尔值。
- (BOOL) highlighted [read, write, assign] |
指示标注视图是否高亮的布尔值。
- (UIImage*) image [read, write, retain] |
标注视图显示的图片。
- (UIView*) leftCalloutAccessoryView [read, write, retain] |
标准弹出气泡左侧显示的视图。
- (NSString*) reuseIdentifier [read, assign] |
标识这个标注视图可复用的字符串。
- (UIView*) rightCalloutAccessoryView [read, write, retain] |
标准弹出气泡右侧显示的视图。
- (BOOL) selected [read, write, assign] |
指示标注视当前是否被选中的布尔值。