我有一个可以通过 uipangeuseture 拖动的 uiscrollview,同时我希望它是可滚动的,但是当手势被添加到 View 时它不再滚动,它只会变得可拖动。即使我从 ScrollView 中删除该手势,它仍然不会滚动,有什么想法吗?
我如何删除手势
backgroundframe.gestureRecognizers?.removeAll()
我如何添加手势返回
backgroundframe.addGestureRecognizer(self.guestureToAdd)
当我重新添加手势时,拖动仍然可以正常工作,但是当我删除它时,我的 ScrollView 停止滚动,我不明白为什么
最佳答案
UIScrollView
使用手势识别器来检测使其滚动和缩放的手势。如果你查看文档,你会看到它有 panGestureRecognizer
和 pinchGestureRecognizer
您可以使用这些属性直接访问其某些识别器,但它们也必须位于其 gestureRecognizers
数组中才能实际工作。并且(至少通过 iOS 10.3)它的 gestureRecognizers
数组中至少还有一个识别器,该识别器未通过专用属性公开。
当您调用 backgroundframe.gestureRecognizers?.removeAll()
时,您将删除这些识别器。您需要删除仅您自己的识别器:
backgroundframe.removeGestureRecognizer(self.guestureToAdd)
[WWDC 2012 session 223,“使用 ScrollView 增强用户体验”],( https://developer.apple.com/videos/play/wwdc2012/223/ ) 讨论了 UIScrollView
对手势识别器的使用。
关于swift - 当我删除 UIPanguesture 时,为什么我的 UIScrollView 不滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44293927/