UIScrollview zoom正在制作UIScrollview的子视图Pan

时间:2016-04-19 11:32:20

标签: ios iphone uiview uiscrollview

我的UIScrollView遇到了一些麻烦。所以情况如下: 我有一个UIScrollView里面有一些小UIViewUIView有一个Pan事件可以在scrollview中移动它们。但是当我缩放我的滚动视图并且我的一个手指在UIview上时,会启动平移并且UIScrollView没有缩放(并且UIview正在移动)。

我尝试设置平底锅的MaximumNumberOfTouches,但这不起作用。我认为这是因为第二次触摸是在视图之外。 你知道如何让它发挥作用吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须在View Controller中实施 UIGestureRecognizerDelegate协议,以便您可以使用gestureRecognizer(_:shouldRequireFailureOfGestureRecognizer:方法并在需要时返回true。您可以通过将第一个和第二个参数分别与Pan Pan Gesture Recognizer和Scroll View的Pinch Gesture Recognizer进行比较来形成限制性谓词:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    return gestureRecognizer == myPanGestureRecognizer && otherGestureRecognizer == scrollView.pinchGestureRecognizer
}

这样,后者将等到Scroll View的手势识别器在转换到状态.Recognized之前失败。有关详细信息,请参阅Apple Gesture Recognizer Programming Guide

不要忘记将Pan Gesture Recognizer的委托属性设置为self

myPanGestureRecognizer.delegate = self