我们怎样才能隐藏tableHeaderView和tableFooterView?

ICo*_*der 24 iphone objective-c ios

我有两个按钮,我将它添加到表格页脚中的一个,另一个在表格标题中,我知道如何使用此代码隐藏表格的标题视图,table.tableHeaderView.hidden = YES; 但问题是表格的顶部仍有空格那个空间等于标题视图大小,但视图是隐藏的.它仍然有空格.如何通过删除这个空格来禁用表标题.我希望天才开发者理解我的问题.请帮助我.提前致谢.

Emp*_*ack 72

而不是隐藏你应该做的标题视图,

tableView.tableHeaderView = nil
Run Code Online (Sandbox Code Playgroud)

以后如果你想要显示它然后再分配它,

tableView.tableHeaderView = tableHeaderView;
Run Code Online (Sandbox Code Playgroud)

在Swift中:

class myTableViewController: UITableViewController {

    @IBOutlet var tableHeaderView: UIView!

    private func toggleHeaderView() {
        if tableView.tableHeaderView == nil {
            tableView.tableHeaderView = tableHeaderView 
        } else { 
            tableView.tableHeaderView = nil 
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

在你的故事板上,只需将UIView拖入表视图即可.它将"神奇地"成为表视图标题(如果你再做一个,它将成为表视图页脚).但是,您必须单击该标题视图,并将引用插座拖动到表视图控制器,并将其链接到"tableHeaderView"...该部分不是"魔术".

请注意,因为"!" 在声明中,您必须记住在Storyboard上拖动链接,否则在测试期间会出现运行时错误,这是一件好事.

  • 使用ARC时,请确保将'theHeaderView'声明为'strong',如下所示:@property(strong,nonatomic)IBOutlet UIView*theHeaderView; 否则,它将被释放并设置为nil,这将导致上面的"show"代码失败. (25认同)
  • 当我将tableHeaderView设置为nil时,顶部仍然有一个空白区域. (4认同)

Alf*_*lfa 8

尝试:

tableView.tableHeaderView?.removeFromSuperview()
tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNonzeroMagnitude))
tableView.layoutIfNeeded()
Run Code Online (Sandbox Code Playgroud)

设置高度为CGFloat.leastNonzeroMagnitude而不是'0'的UIView.删除tableViewHeader后,这将删除顶部显示的空白区域.这对我有用.


cat*_*ore 6

如果您在故事板中创建了视图,则可以使用以下命令暂时隐藏它

tableView.tableHeaderView?.frame = CGRect.zero

要再次显示它,请使用

tableView.tableHeaderView?.frame = CGRect(x: 0, y: 0, width: tableView.frame.width, height: 50)