我在不同的 ViewController 中有一个 TableView 和一个 CollectionView。现在我在它们两个中显示完全相同的单元格。所以我想创建一个可重复使用的单元,以方便和易于维护。
我尝试创建一个 xib 并将自定义类设置为一个UITableViewCell类,然后我可以在UITableView. 但是,UICollectionView由于 CollectionView 无法加载 TableViewCell ,因此我无法在其中重用此 xib 。
所以我的问题是有什么好的方法可以为 TableView 和 CollectionView 制作可重用的单元格?
我已经习惯使用Python的默认模式的模式是一个字典,如果没有明确设置给定键的值,则返回默认值.试图在Swift中这样做有点冗长.
var dict = Dictionary<String, Array<Int>>()
let key = "foo"
var value: Array<Int>! = dict[key]
if value == nil {
value = Array<Int>()
dict[key] = value
}
Run Code Online (Sandbox Code Playgroud)
我意识到我可以创建一个这样做的类,但是实际的Dictionary必须通过属性访问才能使用任何其他正常的Dictionary方法
class DefaultDictionary<A: Hashable, B> {
let defaultFunc: () -> B
var dict = Dictionary<A, B>()
init(defaultFunc: () -> B) {
self.defaultFunc = defaultFunc
}
subscript(key: A) -> B {
get {
var value: B! = dict[key]
if value == nil {
value = defaultFunc()
dict[key] = value
}
return value
}
set …Run Code Online (Sandbox Code Playgroud)