我为我的缩放编写了一个自定义捏手势识别器,我在视图控制器中处理方法中的捏合触摸 .
但在某些情况下,我希望 ScrollView 的行为与通常的行为完全相同(如果它使用了ScrollView附带的标准捏合手势识别器) .
ScrollView
有没有办法,在这种情况下,我可以将我的自定义手势识别器传递给 ScrollView ,它会使用该识别器来扩展视图,因为它通常会?
我可以将手势识别器传递给由捏合动作触发的选择器吗?
我没有试过这个,但这是一个想法:
设置自己的gestureRecognizer时,将ScrollView的 pinchGestureRecognizer 存储在iVar中 . 然后,您应该能够动态地交换您的gestureRecognizer和原始的 .
pinchGestureRecognizer
从iOS 5开始,UIScrollView公开了pinchGestureRecognizer属性,但这是只读的 . 为了让它使用你自己的代替,你必须子类化UIScrollView并覆盖这个属性,希望内部UIScrollView也使用这个属性来获得在启用缩放时添加的手势识别器 .
然而,使用滚动视图的手势识别器非常危险,尤其是修改它们的行为 . 即使只是拥有不同的委托也会触发异常 . 因此,请自担风险 .
2 回答
我没有试过这个,但这是一个想法:
设置自己的gestureRecognizer时,将ScrollView的
pinchGestureRecognizer
存储在iVar中 . 然后,您应该能够动态地交换您的gestureRecognizer和原始的 .从iOS 5开始,UIScrollView公开了pinchGestureRecognizer属性,但这是只读的 . 为了让它使用你自己的代替,你必须子类化UIScrollView并覆盖这个属性,希望内部UIScrollView也使用这个属性来获得在启用缩放时添加的手势识别器 .
然而,使用滚动视图的手势识别器非常危险,尤其是修改它们的行为 . 即使只是拥有不同的委托也会触发异常 . 因此,请自担风险 .