删除分隔符左侧空格时的UITableView HeaderView边距

时间:2016-06-10 10:14:59

标签: ios swift uitableview uitableviewsectionheader

我已在 viewDidLoad 中使用我的tableview删除了分隔符左边距:

self.tableView.layoutMargins = UIEdgeInsetsZero
self.tableView.separatorInset = UIEdgeInsetsZero

在我的 cellForRowAtIndexPath

cell.layoutMargins = UIEdgeInsetsZero

问题是页眉和页脚视图也被移动了,我想让它与单元格的内容保持一致。

enter image description here

我尝试更改 willDisplayHeaderView willDisplayFooterView 中的框架但未成功。有什么建议吗?谢谢!

3 个答案:

答案 0 :(得分:1)

页眉/页脚无法坚持您的单元格内容。我也浪费了很多时间

您必须在您的部分添加一行,并将其用作页眉/页脚

答案 1 :(得分:1)

在标题视图

中尝试此代码集自定义标签框架
    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let view = UIView()
    let lbl = UILabel(frame: CGRectMake(15,2,self.view.frame.size.width,20))
    lbl.textColor = UIColor.whiteColor()
    lbl.text = "SOPORTE"
    lbl.font = UIFont(name: "Helvetica Neue", size: 15)
    view.addSubview(lbl)

    return view
}

答案 2 :(得分:0)

正如 Memon Irshad 建议的那样,我已经创建了一个新标签,而不是在 viewForHeaderInSection 中进行,我在 willDisplayHeaderView 因为在使用此方法时我们可以知道headerView的大小。

然后我隐藏了TableViewHeader的原始textLabel并添加了新的框架标签。你怎么看?有什么改进吗?

看起来像这样:

override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
{
    let originView = view as! UITableViewHeaderFooterView

    let lbl = UILabel(frame: CGRectMake(15,originView.frame.height-30,originView.frame.size.width,20))

    // Setting up the new label
    lbl.numberOfLines = 0
    lbl.font  = Constants.Fonts.HeaderRow
    lbl.textColor = Constants.Colors.TextColored

    // Copying the original text content
    lbl.text = originView.textLabel?.text

    // Hidding the original label
    originView.textLabel?.hidden = true

    originView.addSubview(lbl)
}