【问题标题】:How To Use TouchEvent's in Subview Of UIScrollView如何在 UIScrollView 的子视图中使用 TouchEvent
【发布时间】:2021-04-24 03:54:27
【问题描述】:
我试图在 UIScrollView 中捕捉触摸事件。示例:我在 UIScrollView 中有 UIImageView。我正在使用 UIScrollViewDelegate 来检测 UIScrollView 缩放操作。但是当我尝试将 UIImageView 触摸事件作为 touchesBegan、touchesMoved 和 touchesEnded 时,我无法获取它们。我怎样才能得到它们?
【问题讨论】:
标签:
swift
uiscrollview
touch-event
【解决方案1】:
- 而不是
UIImageView 使用UIControl,其中图像可以分配为
controlView.layer.contents = image.cgImage
- 将
UIImageView 放在UIControl 中,对于UIImageView,将isUnteractionEnabled 设置为false。
在这两种方式中,您都可以使用addTarget 来处理UIControl 点击。还有像beginTracking、continueTracking这样的触摸事件。查看更多https://developer.apple.com/documentation/uikit/uicontrol
- 使用 UITapGestureRecongizer:
imageView.addGestureRecognizer(UITapGestureRecognizer(
target: self, action: #selector(onImageViewTap(_:))))
@objc func onImageViewTap(_ gr: UIGestureRecognizer) {
.....
}