我正在合并这个 color slider进入我的应用程序,但我无法将其放入表格 View 单元格中,因此它在纵向和横向 View 中都占据了单元格的长度。下面是两个屏幕截图,以纵向和横向显示我的应用程序。您可以看到颜色 slider 没有延伸整个单元格的长度。这是我设置颜色 slider 的代码。我试图弄清楚如何对 CGRect 进行属性编码,以便颜色 slider 动态填充单元格的长度。
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)
}
编辑(再次) 根据您的建议,我在下面更新了我的代码。这在纵向方向上非常有效。颜色 slider 占据颜色标签右侧单元格的完整大小。但是,当我将手机旋转到横向时,颜色 slider 仅占满屏幕的一半。下面是它的外观截图。
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) ])
}
最佳答案
原因是您已将彩色幻灯片的宽度设置为 200,因此它将始终为 200。
你应该使用自动布局来实现这一点,你可以在 Storyboard/nib 文件中添加约束,或者如果你以编程方式构建 View ,你可以使用 anchor 添加自动布局,例如像这样
colorSlider.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activateConstraints([
colorSlider.leadingAnchor.constraintEqualToAnchor(UILable.leadingAnchor),
colorSlider.trailingAnchor.constraintEqualToAnchor(cell.trailingAnchor),
colorSlider.topAnchor.constraintEqualToAnchor(cell.topAnchor, constant: 8),
colorSlider.bottomAnchor.constraintEqualToAnchor(cell.bottomAnchor, 常数: -8) ])
关于ios - 将表格 View 单元格中的颜色 slider 设置为单元格的全长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40580016/