2014-02-26 50 views
27

在iOS7中,如何在UITableView中繪製單元格的圓角?看一個例子:UITableView中的圓角(iOS7)

enter image description here

+1

機會是這些細胞正在自定義繪製的,或者他們正在使用的圖像。 http://www.cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html – NathanAldenSr

回答

24

UITableview包含UIView,所以只需使用下面這行代碼爲使其圓角。 還寫下面的代碼行的實現代碼如下方法

對於Objective-C的內部: -

cell.contentView.layer.cornerRadius = 5; 
    cell.contentView.layer.masksToBounds = YES; 

對於斯威夫特: -

cell.contentView.layer.cornerRadius = 5 
cell.contentView.layer.masksToBounds = true 

注: - 無需導入QuartzCore framework明確地在ios7。而且它只會在iOS7中工作,但在後續版本中不能保證。

+2

你的意思是cell.contentView而不是視圖? –

+0

不知道在一年前使用'YES'是否真的有效,但現在至少它是'真實'而不是'是',儘管如此,這對我來說非常合適。 – TaylorAllred

+1

也許是因爲我使用的是swift,我不知道,我知道的只是輸入YES,沒有爲我工作,只好使用true。我也從來沒有聽說過使用YES或NO的任何代碼,直到你發佈文檔頁面,所以不管。想想我錯過了obj-c標籤,即使當我發現這個頁面時,我正在google中快速輸入。 – TaylorAllred

3

使用下...

[cell.contentView.layer setCornerRadius:7.0f]; 
[cell.contentView.layer setMasksToBounds:YES]; 
13

我子類的UITableViewCell,不得不離開了內容查看,使其工作。

cell.layer.cornerRadius = 10 cell.layer.maskToBounds = true

+0

我不知道爲什麼,但同樣的東西工作 爲什麼cell.contentivew.layer.cornerRadius = 5;不工作? –

+0

你有沒有繼承UITableViewCell?我不再爲iOS開發,但我認爲這就是我最初需要這種解決方法的原因 –

+0

@AbhishekThapliyal如果單元格有不清晰的'cell.backgroundColor'或非清除單元格,'cell.contentview.layer.cornerRadius'就不夠了。 backgroundView'這就是爲什麼隱藏用戶名解決方案可能比Hussain Shabbir或Fahim Parkar更好的解決方案 –

2

試表視圖委託

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell.layer.cornerRadius = 10; 
    cell.layer.masksToBounds = YES; 
} 
+1

您的解決方案比所有前端解決方案都要好! –