ViewForHeaderInSection 中的两个标题

Posted

技术标签:

【中文标题】ViewForHeaderInSection 中的两个标题【英文标题】:Two headers in ViewForHeaderInSection 【发布时间】:2017-12-20 03:44:44 【问题描述】:

我希望视图控制器顶部的两个标题不会随着表格的滚动而消失。

第一部分代码显示了我在viewDidLoad 中的顶部标题。 viewForHeaderInSection 工作正常。如何将标头添加到viewForHeaderInSection

let header =  UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 100))
header.backgroundColor = UIColor.red
//header.addSubview(header)
tableView.tableHeaderView = header

/////////

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 
    let v = UIView()
    v.backgroundColor = UIColor.white

    let segmentControl = UISegmentedControl(frame: CGRect(x: 10, y: 5, width: tableView.frame.width, height: 30))
    segmentControl.insertSegment(withTitle: "one", at: 0, animated: false)
    segmentControl.insertSegment(withTitle: "two", at: 1, animated: false)
    segmentControl.insertSegment(withTitle: "three", at: 2, animated: false)
    v.addSubview(segmentControl)
    return v

【问题讨论】:

您想在 one viewForHeader 中添加 2 个视图吗?或者您希望每个部分有 1 个标题,整个 tableview 需要 1 个标题? 我想在一个 viewForHeader 中添加两个视图。谢谢 v你可以添加两个子视图1)你的段控制2)红色视图 【参考方案1】:

只需将一个视图 (segmentControl) 添加为另一个视图 (v) 的子视图。然后将其作为 viewForHeaderInSection 的视图返回。您必须在 segmentControlv 实例之间使用 constraints。

别忘了,对于segmentControl,您必须将translatesAutoresizingMaskIntoConstraints 设置为false。但是,您应该为v 实例使用NOT set translatesAutoresizingMaskIntoConstraints to false,因为您不为此管理外部约束,tableview 将为您完成...

【讨论】:

【参考方案2】:

我认为这对你有帮助:

//你的表格视图

@IBOutlet var tblviewSideMenu: UITableView!

override func viewDidLoad()   

    super.viewDidLoad()

    let screenSize: CGRect = tblviewSideMenu.frame

    let myView = UIView(frame: CGRect(x: 0, y: 0, width: screenSize.width,height: 145))
    myView.backgroundColor = UIColor(red: 0.0/255.0, green: 88.0/255.0, blue: 181.0/255.0, alpha: 1.0)

    tblviewSideMenu.addSubview(myView)
    tblviewSideMenu.tableHeaderView = myView
    tblviewSideMenu .reloadData()
    tblviewSideMenu.tableFooterView = UIView()     
 

注意:如果你想要两个标题添加一个视图

【讨论】:

以上是关于ViewForHeaderInSection 中的两个标题的主要内容,如果未能解决你的问题,请参考以下文章

viewForHeaderInSection 在 xcode 8 中停止工作

viewForHeaderInSection 宽度不正确

viewForHeaderInSection 自动布局 - 引脚宽度

滚动时 viewForHeaderInSection 消失

如何旋转 viewForHeaderInSection

viewForHeaderInSection 对齐错误(Swift 3)