我正在开发Google maps api。目前,当我们尝试拖动标记时,我们必须保持几秒钟然后mapView上升几个点,然后我们可以拖动标记。我想改变这种行为。
我可以覆盖mapView中minimumPressDuration
的{{1}}吗?像这样在某种程度上:
UILongPressGestureRecognizer
基本上我不想保持标记几秒钟然后开始拖动它,它应该是可拖动的瞬间,而地图不应该在拖动过程中移动。我如何实现这一目标?
答案 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此方法在手势识别器类中使用私有属性,可能不鼓励(可能?)
编辑:您可能还想按子视图的类型进行过滤