Ich habe eine color slider in einer TableView-Zelle, die sich vom Label bis zum TrailingAnchor der Zelle erstreckt. Das Problem, das ich habe, ist, wenn sich die Ausrichtung des Geräts ändert, der Farbregler seine Beschränkungen nicht aktualisiert und nicht mehr die gesamte Länge der Zelle verlängert. Im Folgenden finden Sie meinen Code zum Einrichten der Einschränkungen für den Farbregler. Unten sind Bilder, um das Problem zu zeigen, das ich habe. Wenn sich mein Telefon bereits in Querformat befindet, wenn ich diese Szene präsentiere, erstreckt sich der Farbschieberegler über die gesamte Länge der Zelle wie gewünscht. Wenn ich jedoch in die Landschaft umschalte, wenn ich diese Szene bereits betrachte, erscheint der Schieberegler wie folgt. Hier ist die full code wenn das hilft.Einschränkungen, die nicht mit Geräteorientierungsänderung aktualisiert werden
func configureColorSlider() {
let colorSlider = ColorSlider()
let xCell = colorCell.contentView.bounds.width
let yCell = colorCell.contentView.bounds.height
colorSlider.frame = CGRect(x: xCell/4, y: yCell/4, width: 200, height: 24)
colorSlider.orientation = .horizontal
colorSlider.addTarget(self, action: #selector(ConfigureTimestampTableViewController.changedColor(_:)), for: .valueChanged)
colorCell.contentView.addSubview(colorSlider)
colorSlider.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([colorSlider.leadingAnchor.constraint(equalTo: colorLabel.trailingAnchor, constant: 8),
colorSlider.trailingAnchor.constraint(equalTo: colorCell.contentView.trailingAnchor, constant: -8),
colorSlider.topAnchor.constraint(equalTo: colorCell.contentView.topAnchor, constant: 8),
colorSlider.bottomAnchor.constraint(equalTo: colorCell.contentView.bottomAnchor, constant: -8) ])
}
Ist der Inhalt von 'ColorSlider'' CALayers'? Sie aktualisieren ihre Größe/Position nicht mit dem automatischen Layout. –
Es tut. Verwendet CAGradientLayer(), um den Farbregler zu zeichnen. Das muss das Problem sein. Haben Sie eine Empfehlung für die Größenänderung des Schiebereglers, wenn ich das automatische Layout nicht verwenden kann? – chickenparm