iOS - 问题创建自定义MKAnnotation标注

时间:2015-11-10 04:34:04

标签: ios mkmapview mapkit ios9 mkannotation

我在设置MKAnnotation标注泡泡时遇到了一些问题。最初我有一个标准标注,只包含标题,副标题和leftCalloutAccessoryView。这创建了以下标注:

enter image description here

这很好用,直到确定字幕还应该包含一系列五张图片,这些图片显示了用户评论中商家的平均评分。这是通过创建一个单独的视图并将其作为detailCalloutAccessoryView传递来完成的。这产生了以下标注泡泡:

enter image description here

由于某种原因,当视图传递给detailCalloutAccessoryView时,会在所有UI组件周围给出一个奇怪的边框,这些组件会在leftCalloutAccessoryView周围以及标题和副标题之间创建不需要的空格。如何删除此空格?我希望商家在字幕内的平均价格和标题与detailCalloutAccessoryView之间的适当间距。怎么能实现这一目标?是否可以在不从头开始创建callout的情况下这样做?

2 个答案:

答案 0 :(得分:0)

没有代码,很难给出详细的答案。
但是我在this post中找到了一个可能解决您问题的提示:
显然,当您将视图设置为translatesAutoresizingMaskIntoConstraints时,MapKit会将false设置为detailCalloutAccessoryView
这意味着您必须自己设置自动布局约束。

答案 1 :(得分:0)

我建议您创建一个代表Bubble(BubblePin)的自定义引脚,并且每次用户选择一个常规引脚时,都将BubblePin添加到最后选择的常规引脚的相同位置。 因此,添加一个额外的引脚并根据用户选择切换其位置将解决该问题,只需确保将BubblePin添加一些偏移量,以使其不会位于常规引脚的顶部即可。