如何在UIView中为UIImageView添加tapGesture

问题描述 投票:0回答:2

我在UIView中为UIImageView添加了tap手势识别器。我确实为UIImageView和UIView设置了isUserInteractionEnabled = true。但它仍然无法正常工作。

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

defaultBannerView.addGestureRecognizer(tapGesture)defaultBannerView.isUserInteractionEnabled = true adView.isUserInteractionEnabled = true

 func tappedImageBanner(_ sender: UIGestureRecognizer){
    print("Tapped")
    let tappedImageView = sender.view!
    let imageView = tappedImageView as! UIImageView
    print(imageView) }

编辑:

我添加了adView.addGestureRecognizer(tapGesture),但错误是'无法将类型'UIView'的值转换为'UIImageView''

实际上我正在做admob,当我无法从google admob请求横幅时,我想放置我的默认横幅。所以我希望用户能够点击我的默认横幅并直接进入网站。那么我应该在adView中添加tapGesture并在我从谷歌获取广告时隐藏imageView吗?

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

ios swift gesture
2个回答
2
投票
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 
}

0
投票

我在UIView中为UIImageView添加了tap手势识别器。 (...)但它仍然无法正常工作。

这是什么意思:不工作?我可以假设没有检测到水龙头。

我添加了adView.addGestureRecognizer(tapGesture),但错误是'无法将类型'UIView'的值转换为'UIImageView''

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

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

您有没有考虑在UIView上面添加UIImageView并将其alpha更改为0或在加载Banner时隐藏它 - 它会阻止使用tapView?

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

正如您所说,您正在将imageView添加到自定义视图中,而您不知道它是如何工作的。想想你是否真的需要干涉它的逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.