如何解决如何在 Swift 中将变量分配给 UIInteraction?
为什么需要变量?因为在单元格中长按 2 次不同的图像,func contextMenuInteraction
下面是我的代码,我为每个长按交互分配了一个变量。我收到错误 Thread 1: Swift runtime failure: Unexpectedly found nil while implicitly unwrapping an Optional value
//范围内
var dd : UIInteraction!
var cc : UIInteraction!
@IBOutlet weak var immy: UIImageView!
//分别覆盖funcawakeFromNib()和一个objC长按函数
immy.addInteraction(dd) // (this is in the override nib)
self.like.addInteraction(self.cc) //(this is in the @objc func didLongPress())
下面是调用 2 个交互的 func ContextMenuInteraction
func contextMenuInteraction(_ interaction: UIContextMenuInteraction,configurationForMenuAtLocation location: CGPoint) -> uicontextmenuconfiguration? {
uicontextmenuconfiguration(identifier: nil,previewProvider: {
if self.dd as! NSObject == interaction {
if let unwrappedImage = self.immy.image {
return ImagePreviewController(image:unwrappedImage)
}
else {
return nil
}
// put dd stuff here
} else if self.cc as! NSObject == interaction {
// put cc stuff here
let image3 = UIImage(named:"ring-309550-2.png")
if let unwrappedImage1 = image3 {
return ImagePreviewController(image:unwrappedImage1)
}
else {
return nil
}
}
else {
return nil
}
})
}
unexpected found nil 错误在哪里发生 - 在这一行中:
immy.addInteraction(dd)
解决方法
更新这已经解决了(不是我 - reddit 上的某个人)
// scope
var dd: UIContextMenuInteraction
var cc: UIContextMenuInteraction
// inside init()
self.dd = UIContextMenuInteraction(delegate: self)
self.cc = UIContextMenuInteraction(delegate: self)
// downstream
image1.addInteraction(dd)
image2.addinteraction(cc)
// inside contextMenuInteraction()
if self.dd == interaction {
...
} else if self.cc == interaction {
...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。