2017-04-26 4 views
0

Ich versuche, einen Kasten Schatten auf eine Tabellenansicht in meiner iOS App zu setzen. Ich habe verschiedene Techniken dafür ausprobiert, habe es aber noch nicht geschafft, es zu beheben. Ich habe versucht, den Schatten auf die Ebene der Zelle hinzuzufügen, selbst zuerst:Putting Box Schatten auf UITableView Zellen nicht angezeigt [Swift 3]

cell.layer.shadowColor = UIColor.black.cgColor 
cell.layer.shadowOpacity = 1 
cell.layer.shadowOffset = CGSize.zero 
cell.layer.shadowRadius = 2 

Dies funktioniert nicht, also versuchte ich Box Schatten auf dem Inhalt Ansicht zu setzen:

cell.contentview.layer.shadowColor = UIColor.black.cgColor 
cell.contentview.layer.shadowOpacity = 1 
cell.contentview.layer.shadowOffset = CGSize.zero 
cell.contentview.layer.shadowRadius = 2 

I Außerdem wurde versucht, eine zusätzliche Ansicht mit denselben Einschränkungen in der Tabellenansichtszelle hinzuzufügen und den Boxschatten auf diese Ansicht zu setzen, aber dies hat das Ergebnis nicht geändert. result with extra view and constraints and cornenradius

etwas Besonderes in der Tabellendarstellung ist die folgende:

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    if section != 0 { 
     return 10 
    } else { 
     return 0 
    } 
} 

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 
    let header = view as! UITableViewHeaderFooterView 
    header.tintColor = UIColor.init(netHex: 0xF9FAFD) 
} 

Die Datentabelle All in separaten Abschnitten gelegt wird, und 1 Zeile pro Abschnitt.

+0

dieses eine Mal sehen http://stackoverflow.com/questions/43567288/uiview-shadow -cornerradius-not-working/43567400 # 43567400 –

+0

Ich habe versucht die Lösung, die dort erklärt wurde, aber es hatte keine Wirkung. –

+0

können Sie die Frage einmal aktualisieren –

Antwort

2

Nach mir sollten Sie wie folgt vorgehen:

1) Wickeln Sie alle UITableViewCell Ansichten in einem containerView.

2) Geben Sie dem übergeordneten containerView Ränder wie 10px von jeder Seite.

3) gelten dann

cell.containerView.layer.shadowColor = UIColor.black.cgColor 
cell.containerView.layer.shadowOpacity = 1 
cell.containerView.layer.shadowOffset = //any offset 
cell.containerView.layer.shadowRadius = 2 

Hinweis: Rastern Zellschichten Inhalte zu vermeiden Nachziehen immer

cell.layer.shouldRasterize = true 
+0

Wie würde ich die Ränder zur Containeransicht hinzufügen? Ich habe diesen Code im Moment: cell.backView.layer.shadowColor = UIColor.black.cgColor cell.backView.layer.shadowOpacity = 1.0 cell.backView.layer.shadowOffset = CGSize.zero cell.backView.layer. shadowRadius = 2.0 cell.backView.layer.cornerRadius = 15 Das Ergebnis ist folgendes:! [Ergebnis] (http://nl.tinypic.com/r/6ekfaw/9). –

+0

Verwenden von Auto-Layout wie Leading, Traling, Top und Bottom Constraint. zu 10 – ankit

+0

Dies ist das Ergebnis, wenn ich Folgendes versuche: [Ergebnis mit Marge] (http://nl.tinypic.com/r/xm9a8j/9) und [Ergebnis im Simulator] (http://nl.tinypic.com/r/32zl1et/9) –

Verwandte Themen