当我删除UIPanguesture时,为什么我的UIScrollView Scroll没有?

时间:2017-05-31 20:15:58

标签: swift uiscrollview

我有一个可以通过uipangeuseture拖动的uiscrollview,同时我希望它可以滚动,但是当手势添加到视图时它不再滚动,它只会变得可拖动。即使我从滚动视图中删除该手势,它仍然不会滚动,任何想法?

我如何删除手势

backgroundframe.gestureRecognizers?.removeAll()

我如何添加手势

backgroundframe.addGestureRecognizer(self.guestureToAdd)

当我添加手势时,拖动工作仍然正常,但是当我删除它时,我的滚动视图停止能够滚动,我无法弄清楚为什么

1 个答案:

答案 0 :(得分:2)

UIScrollView使用手势识别器来检测使其滚动和缩放的手势。如果您查看文档,则会发现它可以使用panGestureRecognizerpinchGestureRecognizer属性直接访问某些识别器,但它们也必须位于gestureRecognizers中数组实际工作。并且(至少通过iOS 10.3)它的gestureRecognizers数组中至少有一个识别器没有通过专用属性公开。

当您致电backgroundframe.gestureRecognizers?.removeAll()时,您将删除这些识别器。您需要删除您自己的识别器:

backgroundframe.removeGestureRecognizer(self.guestureToAdd)

[WWDC 2012 Session 223,“使用滚动视图增强用户体验”],(https://developer.apple.com/videos/play/wwdc2012/223/)讨论了UIScrollView对手势识别器的使用。