我将此color slider合并到我的应用中,我无法将其放入表格视图单元格中,以便在纵向和横向视图中占用单元格的长度。下面是两个截图,以纵向和横向显示我的应用程序。您可以看到颜色滑块不会延伸单元格的整个长度。这是我设置颜色滑块的代码。我试图弄清楚如何对CGRect进行属性编码,以便颜色滑块动态填充单元格的长度。
DataFrame
编辑(再次) 根据您的建议,我在下面更新了我的代码。这在纵向方向上很有效。颜色滑块占据颜色标签右侧单元格的完整大小。但是,当我将手机旋转到横向时,颜色滑块仅填充屏幕的一半。下面是它的外观截图。
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)
}
答案 0 :(得分:1)
原因是您已将彩色幻灯片的宽度设置为200,因此它始终为200。
您应该使用自动布局来实现这一点,您可以在storyboard / nib文件中添加约束,或者如果您以编程方式构建视图,则可以使用锚点添加autolayout,例如
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,constant:-8) ])