在UITableView上正确显示边框

我正在试图通过显示一个边框来修饰我的tableview。 这是目前的样子:

在这里输入图像说明

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

这是没有边界时的样子:

在这里输入图像说明

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

self.tableView.tableFooterView = UIView() self.tableView.backgroundColor = UIColor.clearColor() tableView.layer.masksToBounds = true tableView.layer.borderWidth = 2.0 

注意

另外一件事,我忘了提及想想。 我想根据有多less个单元来放置边界的高度。 是的,我将永远有相同数量的细胞,但在不同的屏幕上,并不是所有的细胞都会显示。

所以有几种方法可以做到这一点。

  1. 调整TableView的大小,所以当你修改它的图层时,它将适合整个视图。

注意事项 :确保TableView的contentSize()实际上适合在屏幕上,所以最终不会得到比设备屏幕更大的视图。

  1. 只添加上边框和其余的单元格的边,所以边框将随着单元格正确移动,当tableview滚动时不会以空格结束。

    换一种说法。

    • 顶部边框将应用于TableView.layer
    • 边框将应用于每一行。 您可以将它们添加为子视图或cell.contentView.layer。 哪一个更容易。
    • 底部边框将仅应用于最后一行。

问题是:如果tableview的contentSize大于frame.size,那么最后一个单元格将不会出现,边框也将不可见。

作为一个方面说明,如果你想隐藏在tableview结尾的额外分隔符,你可以这样做。

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

更好的解决scheme是将所有这些单元格在同一部分中,并将footerView添加为厚的UILable并select背景颜色。

确保TableView风格是分组的,所以它不会浮动。

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

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

你知道细胞的行高,也是细胞的数量。

然后按照计算的值设置UITableView框架。

UITableView高度=单元格行高*单元格数量。

然后将边框设置为tableview

在这里输入图像说明

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

你需要把你的表视图的高度限制为IBoutlet

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

设置桌子高度

 TblHeightConstraint.constant = yourCellHight * [NumberofCells]; 

它会设置你的桌子daynamically.so你的边界将显示根据单元格的数量。