在 Swift 上将所有手势从 UIView 转换为 UIScrollView

Posted

技术标签:

【中文标题】在 Swift 上将所有手势从 UIView 转换为 UIScrollView【英文标题】:Translating all gestures from UIView to UIScrollView on Swift 【发布时间】:2015-09-05 13:36:49 【问题描述】:

我在 UIScrollView 上有 UIView。

如何将所有手势从 UIView 转换为 UIScrollView:

滚动(滑动) 缩放 拖动

在我使用 touchesMoved、touchesBegan 和 touchesEnded 方法在 UIScrollView 上平移点之前,我无法获得类似的效果:

如果缩放值超出最小和最大范围,则缩放并恢复到最小和最大缩放 滑动滚动 其他

我的问题有解决方案吗?

【问题讨论】:

UIScrollView 支持所有这些手势。你到底想做什么? 是的,但是在 UIScrollView 上我有 UIView,并且所有 UIScrollView 手势都被阻止了。 【参考方案1】:

找到的解决方案:

weak var receiver: UIView!

override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? 

    if (self.pointInside(point, withEvent: event)) 
        return self.receiver;
    
    return nil


touchView.receiver = scrollView

【讨论】:

以上是关于在 Swift 上将所有手势从 UIView 转换为 UIScrollView的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIPanGestureRecognizer 从 CGRect 获取 UIView - Swift 2.0

创建一个捕捉点击但对所有其他手势透明的 UIView

手势识别器不起作用。执行下方元素的操作 - SWIFT

Swift 中的 UIScrollView 内的 UIPanGesture

Swift 3:从“UIView”隐式强制表达的表达式?去任何

如何在真实设备上将Gradient应用于iOS 10中的UIView