我想使用接口构建器为表视图部分创建自定义标题。我无法使用方法titleForHeaderInSection,因为我需要显示两个标签。我使用了以下说明:在iOS8中自定义TableView的页眉和页脚,但是它不起作用。
到目前为止,我所做的是:
class CustomTableCell: UITableViewCell {
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var dateDescriptionLabel: UILabel!
}
viewForHeaderInSection
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerCell = tableView.dequeueReusableCellWithIdentifier("CustomTableCell") as CustomTableCell
headerCell.backgroundColor = UIColor.cyanColor()
headerCell.dateLabel.text = "Test date"
headerCell.dateDescriptionLabel.text = "Test date description"
return headerCell
}
当我运行该应用程序时,该部分出现一秒钟,然后在表格单元格下面移动,并且我得到一个错误:表格单元格的索引路径没有被重用。
该解决方案有什么问题?我从链接的教程中下载了该项目,并且可以在其中运行。
您的问题的根源在于UIKit如何处理UITableViews。为确保表格视图快速且响应迅速,即使有大量单元格,也要重复使用这些单元格。
通过调用,tableView.dequeueReusableCellWithIdentifier("CustomTableCell")
您要求tableView给您一个单元以供重用。
许多人一直在使用可重复使用的单元格来设计情节提要中的页眉/页脚。从iOS 7 Beta 5开始,这可能会导致错误。这个答案很好地说明了这种情况:iOS 6/7中“没有重用表单元格的索引路径”消息的含义是什么?
为了设计自己的自定义页眉/页脚视图,我不建议使用UITableViewCells。相反,您应该直接在代码中创建和设计自定义UIView。如果要使用Interface Builder,可以在故事板中创建一个.xib或一个视图,该视图不是实际控制器视图的子视图。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句