2016-07-05 140 views
0

我想通过在其上显示边框来抛光我的tableview。 这是它目前的样子:在UITableView上正确显示边框

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 

注意

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

+0

您是否需要边框是静态的,还是希望它与最后一个单元一起移动? – APesate

+0

你必须调整你的tableview的框架,以匹配它的内容... –

+1

偏离主题,但我只是想说,你的项目想法是巧妙的。继续! –

回答

0

更好的解决办法是把所有这些细胞在同一节&添加footerViewUILable与您选择的背景色。

确保TableView风格已分组,因此它不会浮动。

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

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

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

代价:确保TableView中的contentSize()实际上适合在屏幕上,这样你就不会跟这比设备的屏幕更大的观看结束了。

  • 仅添加边框与双方细胞的休息,所以边框会随着细胞的正常移动,你会不会用空格结束时的tableview滚动。

    换句话说。

    • 顶部边框将被应用到TableView.layer
    • 的侧部边界将被应用到每一行。您可以将它们添加为子视图或cell.contentView.layer。无论哪个对你来说都更容易。
    • 底部边框将仅应用于最后一行。
  • 问题本:如果tableview中的contentSize比frame.size更大然后是最后一个单元格将不会出现和边框将不可见两种。

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

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

    0

    这可以通过获得的UITableViewCell高度实现。

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

    然后,只需根据计算出的值设置UITableView框架即可。

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

    然后边框设置为实现代码如下

    +0

    我知道细胞高度,但是如何获得数字或可见细胞? –

    +0

    好的,你可以做一件事。您只需查看视图并为该视图设置自动布局。将边框设置为该视图。然后在该视图中添加一个uitableview。 – Andolasoft

    0

    enter image description here

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

    你需要采取IBOutlet中的你的表视图

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

    配置表高度HIGHT约束与

    TblHeightConstraint.constant = yourCellHight * [NumberofCells]; 
    

    它将daydayically放置你的表。你的边框将显示根据单元格的数量。