手势识别器未触发iOS

时间:2018-05-04 07:17:13

标签: ios swift

我在滚动视图上有一个图像视图。我在图像视图上添加了多个子视图。

  

- > UIScrollView的

     

- >的UIImageView

     

---> UIViews

我想为子视图添加手势识别器。但它没有用。我的错误在哪里?函数 handleTap()未触发。

 func addSubViewOnImageView(mPoint:CGPoint, mSize: CGSize){
    let rect = CGRect(origin: mPoint, size: mSize)
    let sView = UIView(frame: rect)
    sView.isUserInteractionEnabled = true
    let tap = UITapGestureRecognizer(target: self,  action: #selector(self.handleTap(_:)))
    tap.delegate = self
    sView.addGestureRecognizer(tap)
    imageView.addSubview(sView)
  }

 @objc func handleTap(_ sender: UITapGestureRecognizer) {
        print("tapped any sub view")
  }

2 个答案:

答案 0 :(得分:2)

  

此属性继承自UIView父类。此类将此属性的默认值更改为NO。

为您的imageview启用用户互动,默认情况下为false,有关详细信息,您可以从apple document获取信息

imageView.isUserInteractionEnabled = true

答案 1 :(得分:2)

只需检查

yourImageView.isUserInteractionEnabled = true 

有没有?

如果您不想做,请替代 yourImageView.isUserInteractionEnabled = true

只需让您的UIView class a subclass of UIControl from storyboard参考屏幕截图即可。

它将充当UIButton无需编写用于添加点击手势just add an action and like的代码,通常我们为UIImageView`做了

enter image description here