2016-06-10 113 views
0

我已经从我的tableview删除分隔左边距:的UITableView HeaderView保证金

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

在我的cellForRowAtIndexPath

cell.layoutMargins = UIEdgeInsetsZero 

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

enter image description here

我试图改变帧的willDisplayHeaderViewwillDisplayFooterView没有成功。任何建议?谢谢!

回答

1

页眉/页脚无法粘贴到您单元格的内容。我太浪费了大量的时间对

您必须添加一行到您的部分,并使用它,仿佛它是一个页眉/页脚

+0

感谢。那我可以保留这个设计吗? (没有分隔线的标题) –

+0

对不起,但你在说什么分隔线? –

+0

您可以根据需要自定义该特定行(您想用作标题的行),您可以更改其高度/可以更改颜色,边框宽度等等。它可以轻松定制。您可以使用indexPath.section并访问行号。那么你可以自定义该单元格 –

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 
} 
+0

谢谢。我正在尝试适应,但很难找到标题和第一个单元格之间的正确距离。 –

+0

根据您的要求只更改x值 –

+0

是的,但我不知道此时段headerView有多高,对吧? –

0

由于梅蒙伊尔沙德建议,我创建了一个新的标签,但不是做里面的viewForHeaderInSection我已经做在willDisplayHeaderView,因为在使用这种方法,我们可以知道的大小,他aderView。

然后我隐藏TableViewHeader的原始文本标签并添加新的框架标签。你怎么看?任何改进?

是这样的:

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) 
} 
+0

'originView.textLabel?.hidden = true'非常重要,否则标签会互相重叠,看起来很奇怪。 – Annjawn