我想在故事板中的UITableView
中使用静态单元格。
但我也希望从具有自定义.xib
子类的自定义UITableViewCell
文件加载这些单元格。
我想这样做,因为我想在多个表视图中重用单元格。
所以我在storyboard中添加了一些静态单元格,并在身份检查器中设置了自定义类。
但是当我想在自定义视图的awakeFromNib
方法中访问Outlets时,它们是nil
。即使是后来,他们也没有被实例化。
我怎样才能以正确的方式做到这一点?
答案 0 :(得分:0)
如果要在故事板中添加静态单元格,它们的功能类似于单独的.xib
文件,覆盖您愿意使用的自定义.xib
。
如果要在多个表视图中重用单元格,则应在表视图中使用动态单元格。动态细胞通常也更具可持续性,特别是在更大的应用中。
答案 1 :(得分:0)
好的,我明白了,这是怎么回事:
我为我的UITableViewCell
创建了一个容器类,如下面的答案中所述:
https://stackoverflow.com/a/34881072/4846592
此类包含一个属性,用于访问自定义单元格并在其初始值设定项中加载XIB
这里是Swift 3的代码
class CustomTableViewCellContainer: UIView {
var cell: CustomTableViewCell!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
cell = Bundle.main.loadNibNamed("CustomTableViewCell", owner: self, options: nil)!.first as! TextFieldTableViewCell
cell.frame = self.bounds
cell.autoresizingMask = [.flexibleWidth]
self.addSubview(cell)
}
}
然后,我刚在Storyboard中的静态UIView
的ContentView中添加了UITableViewCell
,并将高度和CustomTableViewCellContainer
设置为自定义类名。
最后,我添加了一个IBOutlet
来访问自定义单元格。