0

我在 Storyboard 的 TableView 中添加了表格标题,我想隐藏/显示这个标题。

我有一个分段控件,并希望标题显示在其中一个段中。

要将标题隐藏在我使用的一个段中:tableView.tableHeaderView = nil 这将隐藏它。在其他部分中,取消隐藏我使用的标题:

if tableView.tableHeaderView == nil {
    tableView.tableHeaderView = self.tableViewHeader
}

但标题不再显示。如何解决这个问题?

4

4 回答 4

1

如果你设置

tableView.tableHeaderView == nil

比您创建一个局部变量来将 tableView.tableHeaderView 存储在 viewDidLoad 上,如下所示

self.tableViewHeader = tableView.tableHeaderView

比检查

if tableView.tableHeaderView == nil 
{
 tableView.tableHeaderView = self.tableViewHeader
}
于 2017-04-19T12:43:28.127 回答
0

您可以像这样隐藏和显示表头:

// Show header

tableView.setContentOffset(CGPoint(x: CGFloat(0), y: CGFloat(44)), 动画: true)

// Hide header

tableView.setContentOffset(CGPoint(x: CGFloat(0), y: CGFloat(0)), 动画: true)

于 2017-04-19T12:38:07.507 回答
0

你可以简单地使用

tableView.tableHeaderView.isHidden = true
 if tableView.tableHeaderView.isHidden {
  tableView.tableHeaderView.isHidden = false }

或者

tableView.tableHeaderView.removeFromSuperview
于 2017-04-19T12:39:07.860 回答
0

这工作正常

 @IBAction func segmentButtonClicked(_ sender: UISegmentedControl) {
            switch sender.selectedSegmentIndex {
            case 0:
                if demoTableView.tableHeaderView == nil {
                    var view1: UIView = UIView.init(frame: CGRect(x:0,y: 0,width :320,height: 60));
                    var label: UILabel = UILabel.init(frame: CGRect(x:0,y: 0,width :320,height: 60))
                    label.text = "header text"
                    view1.addSubview(label);
                    demoTableView.tableHeaderView = view1
                }
               demoTableView.reload()
            case 1:
                 if demoTableView.tableHeaderView != nil {
                     demoTableView.tableHeaderView = nil
                 }
                demoTableView.reload()
            default:
                break
            }
        }
于 2017-04-19T12:46:17.950 回答