我有一个名为Normal ImageCell的自定义单元,它继承自UITableViewCell并绑定到xib.假设我想创建一个名为LargeImageCell的新单元,它继承自NormalImageCell而不创建一个全新的xib.我可以在没有接口构建器
这适用于没有Interface Builder.
class LargeImageCell:NormalImageCell {…}
tableView.registerClass(NormalImageCell.self, forCellWithReuseIdentifier: NormalImageCell.id()) tableView.registerClass(LargeImageCell.self, forCellWithReuseIdentifier: LargeImageCell.id())
这与Interface Builder崩溃:
tableView.registerNib(NormalImageCell.nib(), forCellWithReuseIdentifier: NormalImageCell.id()) tableView.registerNib(LargeImageCell.nib(), forCellWithReuseIdentifier: LargeImageCell.id())
顺便说一下,我正在声明像这样的nib和id方法:
class NormalImageCell: UITableViewCell { class func id() -> String { return String(self) } class func nib() -> UINib { return UINib(nibName: String(self), bundle: nil) } } class LargeImageCell: NormalmageCell { ... }你应该从主包中检索nib,如:
class func nib() -> UINib { return UINib(nibName: String(self), bundle: NSBundle.mainBundle()) }