2017-12-17 1 views
1

Ich versuche, linken Rand zu jeder Tabellenansicht Zelle programmgesteuert festzulegen. Ich verwende UIView als Rahmen, aber ich kann die UIView aus irgendeinem Grund nicht anzeigen. Wie sollte ich die UIView-Höhe einstellen? Vielen Dank.Swift - linken Rand zu UITableViewCell hinzufügen

class Cell: UITableViewCell { 

    var borderLeft: UIView = { 
     let view = UIView() 
     view.frame.size.width = 3 
     view.frame.size.height = 20 
     view.backgroundColor = .red 
     view.translatesAutoresizingMaskIntoConstraints = false 
     return view 
    }() 

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) { 
     super.init(style: style, reuseIdentifier: reuseIdentifier) 

     self.backgroundColor = .black 

     addSubview(borderLeft) 
     borderLeft.topAnchor.constraint(equalTo: self.topAnchor, constant: 0).isActive = true 
     borderLeft.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 0).isActive = true 
     borderLeft.rightAnchor.constraint(equalTo: self.rightAnchor, constant: 0).isActive = true 

    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

} 
+0

Grenze wird wahrscheinlich unter dem 'contentView' versteckt oder unter dem' backgroundView'. Sie sollten alle benutzerdefinierten Ansichten zu einem von ihnen hinzufügen. – Sulthan

Antwort

1

Ich denke, es ist ein Fehler auf diesem Anker:

borderLeft.rightAnchor.constraint(equalTo: self.rightAnchor, constant: 0).isActive = true 

versucht stattdessen mit bottomAnchor, wie zu tauschen:

borderLeft.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 0).isActive = true 

auch hinzufügen, Einschränkungen für Breite und Höhe (Bitte entfernen Bildgrößenanpassung seit wird ignoriert von view.translatesAutoresizingMaskIntoConstraints = false)

borderLeft.heightAnchor.constraint(equalToConstant: 20).isActive = true 
borderLeft.widthAnchor.constraint(equalToConstant: 3).isActive = true 
borderLeft.topAnchor.constraint(equalTo: self.topAnchor, constant: 0).isActive = true 
borderLeft.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 0).isActive = true 

hier das Ergebnis:

enter image description here

+0

Vielen Dank für Ihre Antwort! Ich habe clipsToBounds vor self.backgroundColor = .black hinzugefügt und den Fehler geändert, aber immer noch den gleichen. – coonie

+0

ok, bearbeitet, fehlte Beschränkung auf Breite und Höhe. Ich habe oben einen Kommentar hinzugefügt. –

+0

Es funktioniert jetzt! Alles, was ich brauchte, war BreiteAnker. Ich danke dir sehr. – coonie

Verwandte Themen