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 的视图返回。您必须在 segmentControl
和 v
实例之间使用 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 中停止工作