正确显示UITableView上的边框

时间:2016-07-05 08:50:15

标签: ios xcode swift uitableview border

我正试图通过在其上显示边框来打磨我的桌面视图。 目前的情况如下:

enter image description here

一切都很好,期待底部。我希望边框位于最后一个显示单元格分隔符的底部。

这是没有边框时的样子:

enter image description here

我正在使用这样的页脚并添加如下边框:

self.tableView.tableFooterView = UIView()
self.tableView.backgroundColor = UIColor.clearColor()


tableView.layer.masksToBounds = true
tableView.layer.borderWidth = 2.0

注意

我忘了提到要考虑的另一件事。我想根据有多少个单元格来设置边框的高度。是的,我将始终拥有相同数量的细胞,但在不同的屏幕上,并非所有细胞都会显示。

5 个答案:

答案 0 :(得分:0)

更好的解决方案是将所有这些细胞放在同一部分和将 footerView 添加为您选择的背景颜色的UILable粗。

确保TableView样式已分组,因此它不会浮动。

答案 1 :(得分:0)

tableview.layer.borderWidth=2.0;
tableview.layer.borderColor=[[UIColor blackColor].CGColor];

答案 2 :(得分:0)

所以有几种方法可以实现这一目标。

  1. 调整TableView的大小,以便在修改其图层时,它将适合整个视图。
  2. 考虑:确保TableView的contentSize()实际适合屏幕,因此您不会得到比设备更大的视图#39;屏幕。

    1. 仅将单个边框和其余边添加到单元格中,因此边框将与单元格一起正确移动,当桌面视图滚动时,您不会以空格结束。

      换句话说。

      • 顶部边框将应用于TableView.layer
      • 侧边框将应用于每一行。您可以将它们添加为子视图或添加到cell.contentView.layer。无论哪个更容易。
      • 底部边框仅应用于最后一行。
    2. 问题:如果tableview的contentSize大于frame.size,则最后一个单元格不会出现,边框也不会显示。

      作为旁注,如果你想在tableview的末尾隐藏额外的分隔符,你可以这样做。

      tableview.tableFooterView = UIView(frame: CGRect.zero)

答案 3 :(得分:0)

这可以通过获取UITableViewCell Height来实现。

您知道单元格行高度以及单元格数。

然后根据计算出的值设置UITableView框架。

UITableView height =单元格行高*单元格数。

然后将边框设置为tableview

答案 4 :(得分:0)

enter image description here

tableview.layer.borderWidth=2.0;
tableview.layer.borderColor=[[UIColor blackColor].CGColor];

你需要采取表格视图的高度约束的IBoutlet

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *TblHeightConstraint;

使用

设置表格高度
TblHeightConstraint.constant = yourCellHight * [NumberofCells];

它会将你的表格设置为daynamically.so你的边框将根据单元格数显示。