Swift:通过 UIView 识别滚动
Posted
技术标签:
【中文标题】Swift:通过 UIView 识别滚动【英文标题】:Swift: Recognizing Scrolling Through UIView 【发布时间】:2015-06-26 20:33:26 【问题描述】:我有一个UIViewController
,它创建自定义UIView
对象并将它们插入UIScrollView
。 UIViewController
将UIPanGestureRecognizer
附加到每个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 = self
(panRecognizer
是引用UIView
的UIGestureRecognizer
的变量
【讨论】:
您能否添加更多代码细节。我没有得到 UIView 部分。我也是 swift 新手 这是解决这个特定问题所需的所有代码。您需要帮助的是哪一部分?以上是关于Swift:通过 UIView 识别滚动的主要内容,如果未能解决你的问题,请参考以下文章
iOS Swift 4:UIScrollView 中的 UIView
在滚动视图中更改 UIView 而 / 更新滚动视图高度 - Swift 3 / Xcode 8
以编程方式将 UIScrollView 滚动到 Swift 中的子 UIView(子视图)的顶部