我在一个tableview单元中有一个color slider,该单元从标签延伸到单元格的尾部锚点。我遇到的问题是当设备方向更改颜色滑块不更新其约束并不再扩展单元格的全部长度。以下是我的代码来设置颜色滑块上的约束。下面是显示我遇到的问题的图像。如果我在呈现此场景时手机已处于横向方向,则颜色滑块会根据需要延伸单元格的整个长度。但是,如果我在查看此场景时切换到风景,滑块将如下所示。如果有帮助,这里是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) ])
}
使用'CALayers'是'ColorSlider'的内容吗?他们不更新他们的大小/位置与自动布局。 –
它的确如此。使用CAGradientLayer()绘制颜色滑块。这一定是问题。如果我不能使用自动布局,您是否有建议调整滑块大小? – chickenparm