Ich habe eine UIView in IB in einer Prototypzelle erstellt und Einschränkungen hinzugefügt. Die Zelle hat eine benutzerdefinierte Klasse. Wenn ich versuche, die Breite der UIView in cellForRowAtIndexPath zu erhalten, gibt es 476 statt 251 zurück. Nach dem Lesen von SO zu diesem Thema und den vielen Antworten habe ich versucht, setNeedsLayout und layoutSubviews() in cellForRowAtIndexPath oder in der Unterklasse aufzurufen der richtige Wert Die Höhe 20 ist korrekt. Jede Hilfe sehr geschätzt!So erhalten Sie die richtige Breite einer UIView in UITableViewCell swift
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("EventCell") as! CustomResultsTVCell
// cell.setNeedsLayout()
let maxWidth = cell.barView.frame.width
print("barview maxWidth is \(maxWidth)")
// prints 476.0
Was ist das Problem, vor dem Sie stehen? Sie haben Artikel, die nicht korrekt angezeigt werden? – jo3birdtalk
Haben Sie die Auto-Layout-Eigenschaft der Zellenansicht überprüft? Gibt es Einschränkungen für die Breite? – triandicAnt
@ jo3birdtalk - das Problem ist, dass das Gerät, das auf iphone5S läuft, eine Bildschirmbreite von 320 hat. Und maxwidth zeigt sich als viel größer als das. – richc