Ich habe zwei UILabels:Wie kann ich zwei UILabels nebeneinander erscheinen lassen?
let wordLabel = UILabel(frame: CGRectMake(0,0,(self.view.frame.width - 30)/2,0))
wordLabel.text = word.valueForKey("sanskrit") as? Stringsize: 16)
wordLabel.numberOfLines = 0
wordLabel.sizeToFit()
wordLabel.translatesAutoresizingMaskIntoConstraints = false
let englishWordLabel = UILabel(frame: CGRectMake(wordLabel.frame.width + 10,0,labelWidth,0))
englishWordLabel.text = word.valueForKey("english") as? Stringsize: 16)
englishWordLabel.numberOfLines = 0
englishWordLabel.sizeToFit()
englishWordLabel.lineBreakMode = .ByWordWrapping
englishWordLabel.translatesAutoresizingMaskIntoConstraints = false
Grundsätzlich habe ich eine Reihe von diesen in der Zelle eines UITableView gestapelt.
Um es zu versäubern, wollte ich jedem UILabel etwa die Hälfte des Platzes geben (minus ein wenig Padding). wordLabel
auf der linken Seite. englishWordLabel
auf der rechten Seite.
Was mir momentan in den Sinn kommt, ist, dass wenn ich die sizeToFit
Zeile entferne, dann funktioniert das Sizing, aber mein gesamtes wordLabel fehlt komplett. Ich kann einen Rahmen hinzufügen, um es in der Vorschau anzuzeigen, oder die Ansichtshierarchie debuggen, und es fehlt vollständig. Add sizeToFit
, und mein Etikett erscheint, aber die Breite wird ignoriert (dieser Teil verstehe ich).
Ich habe über das Hinzufügen von Einschränkungen nachgedacht, um diesen Job zu erledigen, aber ich bin mir nicht sicher, ob das die beste Strategie ist.
Was würden Sie empfehlen, um dies zu erreichen?
Sie benötigen automatisches Layout. Der einfachste Weg für Sie ist eine horizontale 'UIStackView' Einstellung auf' Fill Equally'; Dies ermöglicht es Ihnen, zwei Etiketten mit der gleichen Breite Seite an Seite mit im Grunde keine Mühe zu haben. Sie können auch die Polsterung anpassen. Sie können auch mehrere "Zeilen" des Labels "UIStackView" in ein vertikales "UIStackView" einbetten. –
Ah cool @RoboticCat. Danke für den Hinweis. Was ist "Auto-Layout" genau? – Trip
Einer der Gründe für das Layout von Ansichten und View-Controllern in IB ist, dass Sie die Constraints zur Entwurfszeit korrigieren können, anstatt den gesamten Code-> Kompilieren-> Test-> Code-Zyklus durchzugehen. In IB können Sie Ihre Ansichten und Controller für jedes Gerät in jeder Ausrichtung zur Entwurfszeit anzeigen. IB wird auch Fehler und Warnungen für Einschränkungen anzeigen, die nicht funktionieren. Aus irgendeinem Grund verstehen einige Entwickler Auto-Layout nicht (und sicherlich nicht verstehen, seine Macht), so schlage ich vor, Sie zuerst ein Tutorial zu überprüfen. –