swift - 当我删除 UIPanguesture 时,为什么我的 UIScrollView 不滚动?

标签 swift uiscrollview

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

我如何删除手势

backgroundframe.gestureRecognizers?.removeAll()

我如何添加手势返回

backgroundframe.addGestureRecognizer(self.guestureToAdd)

当我重新添加手势时,拖动仍然可以正常工作,但是当我删除它时,我的 ScrollView 停止滚动,我不明白为什么

最佳答案

UIScrollView 使用手势识别器来检测使其滚动和缩放的手势。如果你查看文档,你会看到它有 panGestureRecognizerpinchGestureRecognizer您可以使用这些属性直接访问其某些识别器,但它们也必须位于其 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/

相关文章:

ios - 在 subview 中应用任何 "transform"后缩放 UIScrollView

ios - UIScrollView 内的 UIWebView

ios - 使用 UIViewController 动画显示 UINavigationController

ios - 没有获得 UIAccessibilityElement 的正确坐标

ios - 使用未声明的类型使用 CoreData Extension 错误

ios - ORKTextAnswerFormat 正则表达式验证

Swift 可变字典被视为不可变

iphone - 在 iphone 应用程序中从 UIScrollView 创建 PDF

ios - 在 UITextView 上启用滚动