MapKit:如何获取和设置注释视图的碰撞框矩形?
MapKit: How do I get and set the collision frame rectangle of an annotation view?
MKAnnotationView
s 文件说
管理注释视图之间的冲突
var collisionMode: MKAnnotationView.CollisionMode
The collision mode to use when interpreting the collision frame rectangle.
enum MKAnnotationView.CollisionMode
Constants indicating how to interpret the collision frame rectangle of an annotation view.
我想调试一些我不理解的碰撞行为。
那么如何获取 MapKit 文档中引用的 collision frame rectangle
呢?我可能会尝试绘制此矩形以进行可视化调试。
如何设置collision frame rectangle
?也许不是直接的,但是在许多涉及的视图中哪个决定了这个矩形?
这是我在 MapKit
中找到的关于该术语的唯一参考
编辑
这个collision frame rectangle
是只用来做集群还是也用来隐藏显示优先级较低的集群?
我有两个 AnnotationViews
在视觉上相互叠加。一个有displayPriority = .required
,一个有displayPriority = .defaultHigh
。一个应该消失。但是他们的 collision frame rectangle
在哪里?它们真的重叠吗?
我找到了解释 here。它说:
collisionMode
:一个MKAnnotationView.CollisionMode
。如果地图缩小到它们发生碰撞,那么具有相同 clusteringIdentifier
的两个注释视图将被替换为聚类注释。
但是什么构成了两个注释视图之间的冲突?要知道这一点,我们需要一个碰撞边。可能是:
.rectangle
: 边缘是视图的框架。
.circle
:边是视图框架内可刻划并居中的最大圆。
编辑:
docs 说:为注释视图提供内容的最有效方法是设置其图像 属性。注释视图自动根据您指定的图像调整自身大小并为其内容绘制该图像。此外,还有其他属性可能会影响 frame
属性。所以就是这个自动调整的frame
决定了碰撞帧
MKAnnotationView
s 文件说
管理注释视图之间的冲突
var collisionMode: MKAnnotationView.CollisionMode
The collision mode to use when interpreting the collision frame rectangle.
enum MKAnnotationView.CollisionMode
Constants indicating how to interpret the collision frame rectangle of an annotation view.
我想调试一些我不理解的碰撞行为。
那么如何获取 MapKit 文档中引用的 collision frame rectangle
呢?我可能会尝试绘制此矩形以进行可视化调试。
如何设置collision frame rectangle
?也许不是直接的,但是在许多涉及的视图中哪个决定了这个矩形?
这是我在 MapKit
编辑
这个collision frame rectangle
是只用来做集群还是也用来隐藏显示优先级较低的集群?
我有两个 AnnotationViews
在视觉上相互叠加。一个有displayPriority = .required
,一个有displayPriority = .defaultHigh
。一个应该消失。但是他们的 collision frame rectangle
在哪里?它们真的重叠吗?
我找到了解释 here。它说:
collisionMode
:一个MKAnnotationView.CollisionMode
。如果地图缩小到它们发生碰撞,那么具有相同 clusteringIdentifier
的两个注释视图将被替换为聚类注释。
但是什么构成了两个注释视图之间的冲突?要知道这一点,我们需要一个碰撞边。可能是:
.rectangle
: 边缘是视图的框架。
.circle
:边是视图框架内可刻划并居中的最大圆。
编辑:
docs 说:为注释视图提供内容的最有效方法是设置其图像 属性。注释视图自动根据您指定的图像调整自身大小并为其内容绘制该图像。此外,还有其他属性可能会影响 frame
属性。所以就是这个自动调整的frame
决定了碰撞帧