我在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),但错误是&#39;无法转换类型&#39; UIView&#39;到&#39; UIImageView&#39;&#39;
实际上我正在做admob,我想在我无法通过google admob请求横幅时放置我的默认横幅。所以我希望用户能够点击我的默认横幅并直接进入网站。那么我应该在adView中添加tapGesture并在我从谷歌获取广告时隐藏imageView吗?
如果我想在UIImageView中添加手势怎么办?我应该怎么做?
答案 0 :(得分: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
}
答案 1 :(得分:0)
我在UIView中为UIImageView添加了tap手势识别器。 (...)但它仍然无效。
这是什么意思:不工作?我可以假设没有检测到水龙头。
我添加了adView.addGestureRecognizer(tapGesture),但错误是'无法将类型'UIView'的值转换为'UIImageView''
错误发生时?我认为它是在点击adView时出现的,因为你的sender.view!
不是UIImageView(如果手势识别器链接到UIView)。
当我无法从google admob请求横幅时,我想放置我的默认横幅。 (...)那么我应该在adView中添加tapGesture并在我从谷歌获取广告时隐藏imageView吗?如果我想在UIImageView中添加手势怎么办?
你有没有考虑在上面添加UIImageView UIView并将其alpha更改为0或在加载Banner时隐藏它 - 它会阻止使用tapView?
其实我在做admob(...)我添加了一个名为adView(...)的自定义UIView,它不允许我触摸defaultBannerView
正如您所说,您正在将imageView添加到自定义视图中,而您不知道它是如何工作的。想想你是否真的需要干涉它的逻辑。