У меня есть color slider в ячейке tableView, которая простирается от метки до trailingAnchor ячейки. Проблема, с которой я сталкиваюсь, - это когда ориентация устройства изменяется, слайдер цвета не обновляет свои ограничения и больше не расширяет всю длину ячейки. Ниже мой код устанавливает ограничения на слайдер цвета. Ниже приведены изображения, чтобы показать вопрос, который у меня есть. Если мой телефон уже находится в альбомной ориентации, когда я представляю эту сцену, цветной слайдер по мере необходимости расширяет всю длину ячейки. Однако, если я переключусь на пейзаж, когда уже просматриваю эту сцену, слайдер появляется, как показано ниже. Вот это full code, если это поможет.Ограничения, не изменяющиеся при изменении ориентации устройства
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) ])
}
Является ли содержимое 'ColorSlider' использующим' CALayers'? Они не обновляют свой размер/позицию с помощью автоматического макета. –
Он делает. Использует CAGradientLayer() для рисования слайдера цвета. Это должно быть проблемой. У вас есть рекомендация по изменению размера слайдера, если я не могу использовать автоматическую компоновку? – chickenparm