iOS Swift 4:UIScrollView 中的 UIView

Posted

技术标签:

【中文标题】iOS Swift 4:UIScrollView 中的 UIView【英文标题】:iOS Swift 4: UIView in UIScrollView 【发布时间】:2018-05-25 08:45:09 【问题描述】:

我有一个带有轻击手势识别器的UIImageView 作为UIScrollView 的子视图。

A.) 如果 UIImageView isUserInteractionEnabled=false 滚动视图工作正常(捏缩放、滚动)但无法识别图像上的点击手势。

B.) 如果isUserInteractionEnabled=true 我无法开始捏缩放或从图像滚动,但点击手势有效。

我怎样才能让它工作(保持滚动和缩放但识别点击内容)?

【问题讨论】:

如果可能,将点击手势添加到滚动视图 可以帮忙吗developer.apple.com/documentation/uikit/… 滚动视图包含一个作为 imageView 的地图,我必须点击它上面的标记。所以我认为 scrollView 轻击手势对我没有帮助。 尝试在手势委托中实现this 【参考方案1】:

因为 UIScrollView 具有处理滚动、捏合的手势,这意味着当您的 UIImageView.isUserInteractionEnabled = true 时,UIImageView 的点击手势会接受这些触摸并且不会将其转发到 UISCrollView。

这是通过实现 UIGesture 的委托方法的解决方案:https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/coordinating_multiple_gesture_recognizers/allowing_the_simultaneous_recognition_of_multiple_gestures

【讨论】:

UIimageView(地图)上没有手势识别器,但我无法设置 isUserInteractionEnabled=false,因为它有具有识别器的子视图(也是 UIImageViews 但较小的“标记”)。问题在于没有任何识别器的地图(父 UIImageView)。 别担心,只要实现方法 shouldRecognizeSimultaneouslyWith otherGestureRecognizer,别忘了设置你的marker'gesture delegate,你的视图控制器中的每个手势都会同时工作。

以上是关于iOS Swift 4:UIScrollView 中的 UIView的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之UIScrollView的使用(swift)

iOS开发之UIScrollView的使用(swift)

如何在 UIScrollView iOS/Swift 中的控件页面之间水平滚动

将图像从 UIScrollView 移动到 UIView - Swift 4 PanGesture

Twitter个人资料页面iOS Swift剖析(UIScrollView中的多个UITableViews)

swift 4中的页面控制是不是可以有一个无限的水平分页uiscrollview?