【发布时间】:2016-06-02 15:48:29
【问题描述】:
我想为默认表格单元格使用UITableViewCellStyle.Subtitle 样式。我在an SO answer 中找到了这样的答案:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell?
if (cell != nil) {
cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell")
}
}
通过上面的代码,我可以成功使用字幕单元格样式。但是,我开始认为可能有问题?为什么cell != nil时要创建一个新单元格?这样,您就永远不会重复使用单元格,不是吗?此外,我可以打电话给
let cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell")
我得到了同样的结果。为什么出列可重复使用的单元格然后创建一个新单元格?什么是实现单元重用的正确方法以及当时为单元格使用UITableViewCellStyle.Subtitle 样式?
更新
请注意第一段代码是cell != nil,而不是cell == nil。如果我更改cell == nil,代码将不会使用Subtitle 样式。我认为第一个有效,因为它总是创建具有Subtitle 样式的新单元格。
【问题讨论】:
-
我认为你是正确的,它不会重复使用单元格。如果将其更改为
cell == nil会发生什么。 -
如果我更改
cell == nil,则单元格不使用UITableViewCellStyle.Subtitle样式 -
你在用你的tableview注册一个笔尖/类吗?故事板中有原型单元吗?
-
我没有单元格的笔尖/类。我是这样注册的
tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell"),也许是在某个地方设置样式?
标签: ios objective-c swift uitableview