UITableViewCell中的白线?

时间:2015-10-31 15:31:12

标签: ios objective-c uitableview

我有一个UITableViewCell,在Storyboard中绘制。

但是,在模拟器上运行它,似乎每个单元格分隔符中都有白线以及标题单元格分隔符。

A是UITableViewCell中的标题

A11 - A13是UITableViewCell中的内容

enter image description here

如何删除它?我似乎找不到任何答案。

更新

解决方案here仅将分隔线颜色向左移动而没有边距,并使标题分隔符保持不变。有没有办法在不移动分隔线的情况下去除标题和单元格的白色?

2 个答案:

答案 0 :(得分:2)

您只需选择将tableview的Separator设置为“None”即可。然后继承UITableviewCell并通过将一个CALayer作为子层添加到awakeFromNib的单元格来创建边框。

答案 1 :(得分:0)

使用Swift 4.X并采用最快的黑客方法,您可以使用扩展程序来改进代码:

    extension UITableViewCell {

       var isSeparatorHidden: Bool {
        get {
            return self.separatorInset.right != 0
        }

        set {
            if newValue {
                self.separatorInset = UIEdgeInsetsMake(0, self.bounds.size.width, 0, 0)
            } else {
                self.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0)
            }
        }
    }
}

然后,当您配置单元格时:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "identifier", for: indexPath)
    switch indexPath.row {
       case 3:
          cell.isSeparatorHidden = true
       default:
          cell.isSeparatorHidden = false
    }
    return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = tableView.cellForRow(at: indexPath)
    if cell.isSeparatorHidden { 
       // do stuff
    }
}