gpt4 book ai didi

swift - 读取 sender.tag 时将 UIImageView 与选择器@objc C 函数一起使用时 Swift 出错

转载 作者:行者123 更新时间:2023-11-28 11:56:28 25 4
gpt4 key购买 nike

图像在按下时向@objc C 函数发送一个 Action :

 let imageView = UIImageView()
imageView.tag = 3
imageView.isUserInteractionEnabled = true
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(ItemAction)))
imageView.image = UIImage(named: (itemDictionary[character.Equipment[imageView.tag]]!.image))
overlayView.addSubview(imageView)

这是应该调用的函数:

@objc func ItemAction(sender: UIImageView!) {

print(sender.tag)
print("Item pressed from sender ")

}

该函数运行,但在打印发件人标签时我收到一条错误消息并且程序退出:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITapGestureRecognizer tag]: unrecognized selector sent to instance 0x600002b42a00'

带有 UIButton 的整个设置都有效。如何在外部函数中读取 UIImageView 的标签?

最佳答案

给你

  @objc func itemAction(_ sender: UITapGestureRecognizer){
if let tag = sender.view?.tag{
print("ImageView tag \(tag)")
}
}

在您的函数中将您的方法签名更改为

@objc func ItemAction(_ sender: UITapGestureRecognizer)

关于swift - 读取 sender.tag 时将 UIImageView 与选择器@objc C 函数一起使用时 Swift 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50887696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com