Ios 如何在UIView中为UIImageView添加Tap手势

Ios 如何在UIView中为UIImageView添加Tap手势,ios,swift,gesture,Ios,Swift,Gesture,我一直在为UIView中的UIImageView添加点击手势识别器。我确实为UIImageView和UIView设置了isUserInteractionEnabled=true。但它仍然不起作用 @IBOutlet weak var adView: UIView!<br> @IBOutlet weak var defaultBannerView: UIImageView! let tapGesture = UITapGestureRecognizer(target: self, ac

我一直在为UIView中的UIImageView添加点击手势识别器。我确实为UIImageView和UIView设置了isUserInteractionEnabled=true。但它仍然不起作用

@IBOutlet weak var adView: UIView!<br>
@IBOutlet weak var defaultBannerView: UIImageView!
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(FavouritesVC.tappedImageBanner(_:)))
编辑:

我添加了adView.AddGestureRecognitizer(TapSirture),但错误是“无法将类型为“UIView”的值强制转换为“UIImageView”

实际上我在做admob,当我无法从google admob请求横幅时,我想放置我的默认横幅。所以我希望用户能够点击我的默认横幅,并直接到网站。那么,当我可以从谷歌获得广告时,我是否应该在adView中添加点击手势并隐藏imageView呢

如果我想在UIImageView中添加手势,该怎么办?我该怎么做

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))
imageView.isUserInteractionEnabled = true
imageView.addGestureRecognizer(tapGestureRecognizer)

func imageTapped(tapGestureRecognizer: UITapGestureRecognizer){

    let tappedImage = tapGestureRecognizer.view as! UIImageView

    // Your action 
}
我一直在为UIView中的UIImageView添加点击手势识别器。(…)但它仍然不起作用

这意味着什么:不工作?我可以假设没有检测到抽头

我添加了adView.AddGestureRecognitizer(TapSirture),但错误是“无法将类型为“UIView”的值强制转换为“UIImageView”

错误何时发生?我假设它是在点击adView时出现的,因为您的
sender.view不是UIImageView(如果手势识别器链接到UIView)

当我无法从google admob请求横幅时,我想放置默认横幅。(…)那么,当我可以从谷歌获得广告时,我应该在adView中添加点击手势并隐藏imageView吗?如果我想在UIImageView中添加手势,该怎么办

您是否曾考虑过在UIView上方添加UIImageView,并在加载横幅时将其alpha更改为0或隐藏-这样可以防止点击imageView

实际上我正在做admob(…)我添加了一个名为adView(…)的自定义UIView,它不允许我触摸defaultBannerView


正如您所说,您正在将imageView添加到自定义视图,但您不知道它实际上是如何工作的。如果您真的需要干扰其逻辑,请思考。

参考此答案可能重复在UIImageView上添加UIButton并在其上处理操作。您必须为uiview和UIImageView创建两个点击手势,然后使用yourview。AddgestureRecognitizer(tap手势)yourImageview。AddgestureRecognitizer(tap手势)感谢快速响应,我确实提到了链接,但在我的案例中它不起作用。我添加了一个名为adView的自定义UIView,并在customView的内部添加了UIImageView。我尝试为adView和defaultBannerView设置isUserInteractionEnabled。它正在工作。但我想要的只是defaultBannerView中的点击手势。如果我没有为adView添加GestureRecognizer,它将不允许我触摸defaultBannerView。。。。那么我应该在视图中添加点击手势吗?我试过了,它在我的情况下不起作用。。。因为我将imageView放在自定义UIview中。现在,当我为UIView添加isUserInteractionEnabled和AddGestureRecognitor时,它就可以工作了。但我想要的只是UIimageview中的手势…非常感谢,你救了我一天,userInteractionEnabled为我创造了奇迹,感谢Hanks的回复,是的。1-您说得对,在imageView中未检测到抽头。2-是的,我认为是这样,所以它导致了一个错误。3-您的意思是将imageView置于自定义视图中?是的,目前我正在这样做,但是只有当我将手势功能放置到自定义视图时,手势才会起作用。然后在加载横幅时,我将imageView设置为hidden并删除手势。是这样吗?4-正如你在最后一句中提到的,是的,我是iOS开发者的新手,我可以知道自定义视图中的imageView不这样工作的原因吗?
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))
imageView.isUserInteractionEnabled = true
imageView.addGestureRecognizer(tapGestureRecognizer)

func imageTapped(tapGestureRecognizer: UITapGestureRecognizer){

    let tappedImage = tapGestureRecognizer.view as! UIImageView

    // Your action 
}