gpt4 book ai didi

ios - 在 UI TableView 单元格内单击获取图像

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:29 25 4
gpt4 key购买 nike

我试图在我的 UIImageView 中添加手势识别器

 let rc = UITapGestureRecognizer(target: self, action: "foo:")
rc.numberOfTapsRequired = 1
rc.numberOfTouchesRequired = 1
cell.bar.tag = indexPath.row
cell.bar.addGestureRecognizer(rc)

但没有调用我的 foo 函数

func foo(sender: UIImageView! ) {
self.performSegueWithIdentifier("VC", sender: sender)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "VC" {
let vc = segue.destinationViewController as! VC
vc.item = items[sender.tag]
}
}

最佳答案

因此,正如我之前提到的,您的问题是 UIImageView 默认情况下将属性 userInteractionEnabled 设置为 false。您可以在 Storyboard中更改它,或添加 cell.bar.userInteractionEnabled = true 行。

接下来您的问题出在您的 foo: 方法实现中:您将发送者指定为 UIImageView!,但它应该是 UITapGestureRecognizer。这就是它崩溃的原因 - 它不能是 UIImageView,所以当它展开 (!) 时它是 nil

解决方案:将您的 foo 方法声明更改为 foo(recognizer: UITapGestureRecognizer)。如果您需要在此方法中访问您的 imageView,您可以使用以下代码:

if let imageView = recognizer.view as? UIImageView {
...
}

或使用新的 guard 关键字(Swift 2.0)

guard let imageView = recognizer.view as? UIImageView
else { return }
...

关于ios - 在 UI TableView 单元格内单击获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33644380/

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