【问题标题】:Why doesn't my UIScrollView Scroll when I remove UIPanguesture?当我删除 UIpanguesture 时,为什么我的 UIScrollView 不滚动?
【发布时间】:2017-05-31 20:15:57
【问题描述】:

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

我如何移除手势

backgroundframe.gestureRecognizers?.removeAll()

我如何添加手势

backgroundframe.addGestureRecognizer(self.guestureToAdd)

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

【问题讨论】:

    标签: swift uiscrollview


    【解决方案1】:

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

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

    backgroundframe.removeGestureRecognizer(self.guestureToAdd)
    

    [WWDC 2012 Session 223, “Enhancing User Experience with Scroll Views”],(https://developer.apple.com/videos/play/wwdc2012/223/) 讨论了UIScrollView 对手势识别器的使用。

    【讨论】:

    • 哇,谢谢!我不认为滚动会算作一种手势,认为它只是一个属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    相关资源
    最近更新 更多