Swift:通过 UIView 识别滚动

Posted

技术标签:

【中文标题】Swift:通过 UIView 识别滚动【英文标题】:Swift: Recognizing Scrolling Through UIView 【发布时间】:2015-06-26 20:33:26 【问题描述】:

我有一个UIViewController,它创建自定义UIView 对象并将它们插入UIScrollViewUIViewControllerUIPanGestureRecognizer 附加到每个UIView。我可以做些什么来允许滚动UIScrollView,即使它通过自定义UIView 对象被触摸,同时仍然允许它们的UIPanGestureRecognizers(配置为仅更改x 坐标)工作?

这是我的意思的屏幕截图。蓝色矩形是自定义UIView 对象,白色背景是UIScrollView

任何帮助将不胜感激!

【问题讨论】:

在做了更多研究之后,似乎使用UIGestureRecognizerDelegate (developer.apple.com/library/prerelease/ios/documentation/UIKit/…) 是这样做的方法。问题是,由于我是 Swift 新手,我不知道如何使用它。如果有人知道如何使用gestureRecognizer(_:shouldRecognizeSimultaneouslyWithGestureRecognizer:),我将不胜感激。 【参考方案1】:

我想通了!

一切都是为了使用UIGestureRecognizerDelegate

在顶部,你做class ViewController: UIViewController, UIGestureRecognizerDelegate

然后,在类主体中,添加这个方法:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool return true

最后,在顶部的UIView 上添加panRecognizer.delegate = selfpanRecognizer 是引用UIViewUIGestureRecognizer 的变量

【讨论】:

您能否添加更多代码细节。我没有得到 UIView 部分。我也是 swift 新手 这是解决这个特定问题所需的所有代码。您需要帮助的是哪一部分?

以上是关于Swift:通过 UIView 识别滚动的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift 4:UIScrollView 中的 UIView

在滚动视图中更改 UIView 而 / 更新滚动视图高度 - Swift 3 / Xcode 8

Swift - 在滚动时增大和缩小 UIView

以编程方式将 UIScrollView 滚动到 Swift 中的子 UIView(子视图)的顶部

未能尝试在 SWIFT 中以编程方式在滚动视图中添加 UIView 约束

swift 以编程方式将UIScrollView滚动到Swift中的子UIView(子视图)的顶部