我正在 Swift 中开发一个应用程序,为了好玩,我发现我需要将至少 2 个单独的事件处理程序(闭包?)传递到 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()
}
}
}
这效果很好,但我发现我必须添加其中的另一个,这次支持参数,并希望有人能够演示正确的 Swifty/iOS-y 方法来实现这一目标。
谢谢!
最佳答案
我发现大多数项目都会在实例化后设置这些。例如
let cell = Cell()
cell.onPictureTap = ...
效果很好并且没有副作用(我可以发现!)
关于swift - 在 Swift 中将处理程序传递给 UICollectionView 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51314641/