我是一名初级iOS开发人员,并且正在玩UITableView。如标题所示,我正在寻找将给定视图插入UITableView的标头部分的正确方法。我使用了以下两种方法:

tableView.tableHeaderView = NSBundle.mainBundle().loadNibNamed("InputToListCell", owner: nil, options: nil)[0] as! UITableViewCell




let nib = UINib(nibName: "InputToListCell", bundle: nil)
tableView.registerNib(nib, forHeaderFooterViewReuseIdentifier:"InputToListCell")

override func tableView(tableView:UITableView, viewForHeaderInSection section:NSInteger) -> UIView{
    let header = tableView.dequeueReusableHeaderFooterViewWithIdentifier("InputToListCell")
    return header!;
}


哪种方法更好?如果有一种更好的方法,因为它们两个都起作用,还是优先考虑?我只是想知道为什么会有两件事做同一件事?为了灵活性?

最佳答案

他们做不同的事情。

您的第一个块将添加一个tableHeaderView单个视图,该视图出现在整个表格中并随表格滚动。

第二个块将创建一个节标题,该标题将显示在表中每个节的顶部。它将主要与表格一起滚动,但是它将固定在屏幕顶部,直到整个部分被滚动到屏幕之外。

因此,这完全取决于您实际要执行的操作。在没有节的表中(技术上只有一个节),它们非常相似,不同之处在于第二个将固定在屏幕顶部,但第一个不会固定。

顺便说一句,在这两种情况下,tableHeaderView都不必(可能不应)从UITableViewCell派生

10-08 08:11