自定义标注在MKMapView中被点击时被关闭

时间:2018-07-17 01:43:47

标签: ios swift mkmapview mkannotation calloutview

我有一个地图视图和一个从头开始构建的自定义标注。一切正常,除了用户每次点击标注都会消失。

1 个答案:

答案 0 :(得分:0)

首先,请确保在自定义注释视图中覆盖pointInside以说明标注:

override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
    if self.bounds.contains(point) {
        return true    
    } else {
        return self.subviews.contains { $0.frame.contains(point) }
    }
}

然后,地图视图在标注中偏向于UIButton,并且如果水龙头碰到UIButton的实例,该视图将不会消失。确保您使用按钮覆盖了整个标注视图(点击时可能不会执行任何操作)。

您可以将子视图添加到UIButton中,但要确保它们都将isUserInteractionEnabled设置为false