【发布时间】:2018-06-23 05:26:55
【问题描述】:
在我的新项目中,当我点击一个按钮时,它会从底部弹出一个菜单视图。
和代码:
blackView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleDismiss)))
和handleDismiss 函数:
@objc func handleDismiss(callback:(() -> ())?) {
UIView.animate(withDuration: 0.3, animations: {
self.blackView.alpha = 0
//......
}
}) { (completed: Bool) in
callback?()
}
}
然后我点击菜单视图的Cancel 单元格,使用callback 参数调用handleDismiss 函数。它正在工作。
if item.icon == "close" {
handleDismiss(callback: {
print("callback now")
})
}
但如果我点击黑色蒙版视图(触发action: #selector(handleDismiss))),则会出现如下错误:
有人知道吗?
【问题讨论】:
-
是的,因为 blackview 具有点击手势和 UIGestureRecognizer 的必需发送者对象和 IBAction。所以你必须使用 UIGestureRecognizer 的发送者创建一个新函数并从中调用 handleDismiss。