在cellForRowAt中注册uitableviewcell是否可以。在注册之前,我将通过出队和零检查来检查该单元是否注册的天气。因为我在桌面视图中使用它进行应用程序的类型使用,并且不确定是否需要使用单元格。
var cell = tableView.dequeueReusableCell(withIdentifier: textFieldCellIdentifier) as! TextFieldCell!
if cell == nil {
tableView.register(UINib(nibName: "TextFieldCell", bundle: nil), forCellReuseIdentifier: textFieldCellIdentifier);
cell = tableView.dequeueReusableCell(withIdentifier: textFieldCellIdentifier) as! TextFieldCell!;
}
return cell!;
答案 0 :(得分:0)
不错。它会多次注册,因为cellForRow atIndex会根据你的行数和数量来调用几次。如果你滚动你的tableView将会调用。
所以我认为最好在UITableViewCell
方法中注册viewDidLoad
一次。
tableView.register(UINib(nibName: "TextFieldCell", bundle: nil), forCellReuseIdentifier: textFieldCellIdentifier);
答案 1 :(得分:0)
不,不行!
将细胞注册到表格是一个时间过程。
如果您要将register(_, forCellReuseIdentifier: _)
添加到tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
,则此注册将多次执行,从而导致非常小但不必要的性能问题,因此无需执行此操作。
尝试将其放入viewDidLoad()
或类似方法。