在Swift中向UICollectionView单元格传递句柄



我正在Swift中开发一个有趣的应用程序,发现我需要向UICollectionView中的一个单元格传递至少两个单独的事件处理程序(闭包?(。这导致了构造函数的拥塞,我想知道是否有iOS的最佳实践可以实现这一点。例如,我有以下单元格:

class Cell: UICollectionViewCell {
var onPictureTap: (() -> ())? = nil
var onButtonTap: (() -> ())? = nil
init(onPictureTap: @escaping () -> (), onButtonTap: @escaping () -> (), ) {
//set properties to args
}
@objc func didTouchInsidePicture() {
if let onPictureTap = self.onPictureTap {
onPictureTap()
}
}
@objc func didTouchInsideReplyButton() {
if let onButtonTap = self.onButtonTap {
onButtonTap()
}
}
}

这很有效,但我发现我必须再添加一个,这次是支持一个参数,我希望有人能证明实现这一点的正确、快速/iOS-y方法。

谢谢!

我发现大多数项目都会在实例化后设置这些。例如

let cell = Cell()
cell.onPictureTap = ...

工作良好,没有不良影响(我可以发现!(

最新更新