我的headerView的宽度不适应屏幕的宽度。
我的viewForHeaderInSection
功能:
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cell = self.tableView.dequeueReusableCellWithIdentifier("sectionCell") as! sectionCell
cell.hint.text = "some name"
cell.tag = section
let singleTap = UITapGestureRecognizer(target: self, action: #selector(singleTapOnSection(_:)))
cell.addGestureRecognizer(singleTap)
let view = UIView(frame: cell.frame)
view.addConstraints(cell.constraints)
view.addSubview(cell)
return view
}
我必须将单元格添加到UIView(或类似的东西),因为我在该部分中隐藏了行。 在我看来,我必须以编程方式添加“查看”一些约束,但我不知道如何
答案 0 :(得分:0)
您应该定义headerview
宽度相同的tableview
和高度。不给细胞的高度或宽度。如果你在ui上使用storyborard,那么在上方的tableview上拖动uiview,它会自动设置为headerview,然后给出top,leading,trailing and fix heigth constraints
并删除viewForHeaderInSection
方法。
希望这会有所帮助:)
答案 1 :(得分:0)
定义customView: UITableViewHeaderFooterView
类,并在View Controller中viewDidLoad:
编写
tableView.registerClass(customView.classForCoder(), forHeaderFooterViewReuseIdentifier: "HeaderIdentifier")
而不是将单元格出列,而是将UITableViewHeaderFooterView
出列(因为这是正确的方法)。
这样你就必须在代码中添加自动布局或在 nib 文件中定义它,如果你正在使用这种方法,使用nib并处理各种事情是有点令人沮丧的我建议使用这个库http://www.cs.cmu.edu/afs/cs/academic/class/15418-s12/www/lectures/10_coherence.pdf。