2014-02-26 7 views
27

Wie kann ich in iOS7 die abgerundeten Ecken von Zellen in einem UITableView zeichnen? Sehen Sie ein Beispiel:Abgerundete Ecken in einem UITableView (iOS7)

enter image description here

+1

Chancen sind diese Zellen individuell gezeichnet werden, oder sie werden unter Verwendung von Bildern. http://www.cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html – NathanAldenSr

Antwort

24

Ihre UITableview enthält UIView, so dass diese nur verwenden, unter Codezeilen für die es abgerundete Ecken.

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

Für Swift: - -: Auch diese unter Codezeile in Ihrer Tableview Methode

Für Objective-c schreiben

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

Hinweis: - Keine Notwendigkeit QuartzCore framework zu importieren explizit in ios7. Und auch es wird nur in iOS7 funktionieren, aber keine Garantie für die spätere Version.

+2

meinst du cell.contentView statt Ansicht? –

+0

Ich weiß nicht, ob 'YES' vor einem Jahr wirklich funktioniert hat, aber jetzt ist es zumindest 'wahr' und nicht 'ja', aber das hat für mich perfekt funktioniert. – TaylorAllred

+1

Vielleicht liegt es daran, dass ich swift benutze, ich weiß nicht, alles, was ich weiß, ist in JA geschrieben, da es für mich nicht funktionierte, musste stattdessen true verwenden. Ich habe auch noch nie etwas von Code mit JA oder NEIN für BOOL gehört, bis Sie diese Dokumentationsseite veröffentlicht haben, also was auch immer. Ich denke, ich habe gerade das Objekt obj-c verpasst, obwohl ich, als ich diese Seite gefunden habe, schnell in Google eintippte. – TaylorAllred

3

Verwenden unten ...

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

I subclassed UITableViewCell und hatte content auszulassen, damit es funktioniert.

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

+0

Ich weiß nicht warum, aber die gleichen Dinge funktioniert Warum cell.contentivew.layer.cornerRadius = 5; funktioniert nicht? –

+0

Haben Sie UITableViewCell Unterklasse? Ich entwickle nicht mehr für iOS, aber ich dachte, das war der Grund, warum ich ursprünglich diese Problemumgehung brauchte. –

+0

@AbhishekThapliyal 'cell.contentview.layer.cornerRadius' wird nicht genug sein, wenn die Zelle eine nicht-klare' cell.backgroundColor' oder eine nicht-klare 'Zelle hat. backgroundview. "Deshalb ist die Lösung mit dem versteckten Benutzernamen wahrscheinlich eine bessere Lösung als Hussain Shabbir oder Fahim Parkar. –

2

try Tabellenansicht Delegierten

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

Ihre Lösung ist noch besser als alle vorherigen! –