iOS Google地图会更改默认标记拖动行为

时间:2017-05-19 10:10:12

标签: ios objective-c google-maps

我正在开发Google maps api。目前,当我们尝试拖动标记时,我们必须保持几秒钟然后mapView上升几个点,然后我们可以拖动标记。我想改变这种行为。

我可以覆盖mapView中minimumPressDuration的{​​{1}}吗?像这样在某种程度上:

UILongPressGestureRecognizer

基本上我不想保持标记几秒钟然后开始拖动它,它应该是可拖动的瞬间,而地图不应该在拖动过程中移动。我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

试试这个尺寸

func recursivlyPrint(subviews: [UIView]){
    for subview in subviews{
        if subview.gestureRecognizers != nil{
            for gesture in subview.gestureRecognizers!{
                print(gesture)
                if gesture is UILongPressGestureRecognizer{
                    (gesture as! UILongPressGestureRecognizer).minimumPressDuration = 0.0
                }
            }
        }
        if subview.subviews.count>0{
            recursivlyPrint(subviews: subview.subviews)
        }
    }
}

添加标记后,在mapView的子视图上运行它。这不是最好的方法。更好的方法是访问手势动作的选择器名称并按此过滤(可能还有其他长按手势与可能与mapView作为整体的标记无关)。 Getting the Action of UIGestureRecognizer in iOS此方法在手势识别器类中使用私有属性,可能不鼓励(可能?)

编辑:您可能还想按子视图的类型进行过滤