2016-07-05 200 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放置你的表。你的邊框將顯示根據單元格的數量。