如何在 UIScrollView 的子视图中使用 TouchEvent
How To Use TouchEvent's in Subview Of UIScrollView
我正在尝试捕捉 UIScrollView 中的触摸事件。示例:我在 UIScrollView 中有 UIImageView。我正在使用 UIScrollViewDelegate 来检测 UIScrollView 缩放操作。但是当我尝试将 UIImageView 触摸事件作为 touchesBegan、touchesMoved 和 touchesEnded 获取时,我无法获取它们。我怎样才能得到它们?
- 而不是
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) {
.....
}
我正在尝试捕捉 UIScrollView 中的触摸事件。示例:我在 UIScrollView 中有 UIImageView。我正在使用 UIScrollViewDelegate 来检测 UIScrollView 缩放操作。但是当我尝试将 UIImageView 触摸事件作为 touchesBegan、touchesMoved 和 touchesEnded 获取时,我无法获取它们。我怎样才能得到它们?
- 而不是
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) { ..... }