【发布时间】:2016-12-06 02:51:53
【问题描述】:
我正在创建一个垂直 UISlider。我已经使用所有代码创建了它所在的视图。 (故事板的其余元素使用界面生成器进行约束)
根据我的阅读,要创建一个垂直 UISlider,您需要给 UISlider 一个宽度,然后旋转它。由于 UISlider 所在容器的高度因屏幕尺寸而异,我不想给它一个固定的高度(宽度)。
这就是我的想法
// Mark: Slider View
let leftSlider = UISlider()
let centerSlider = UISlider()
let rightSlider = UISlider()
let colorSliders = [leftSlider, centerSlider, rightSlider]
for slider in colorSliders {
slider.translatesAutoresizingMaskIntoConstraints = false
sliderContainer.addSubview(slider)
let w = sliderContainer.bounds.width
slider.bounds.size.width = w
slider.center = CGPoint(x: w/2, y: w/2)
slider.transform = CGAffineTransform(rotationAngle: CGFloat(-M_PI_2))
slider.value = 0
slider.minimumValue = 0
slider.maximumValue = 255
let sliderTopConstraint = slider.topAnchor.constraint(equalTo: centerHiddenView.bottomAnchor, constant: 5)
let sliderBottomConstraint = slider.bottomAnchor.constraint(equalTo: sliderContainer.bottomAnchor, constant: 5)
NSLayoutConstraint.activate([sliderTopConstraint, sliderBottomConstraint])
slider.backgroundColor = .purple
slider.isEnabled = true
slider.isUserInteractionEnabled = true
}
let sliderContainerWidth: CGFloat = sliderContainer.frame.width
let centerSliderHorizontalConstraints = centerSlider.centerXAnchor.constraint(equalTo: sliderContainer.centerXAnchor)
let widthConstraint = centerSlider.widthAnchor.constraint(equalToConstant: sliderContainerWidth)
let centerSliderWidthConstraint = centerSlider.widthAnchor.constraint(equalToConstant: 90)
NSLayoutConstraint.activate([centerSliderHorizontalConstraints, centerSliderWidthConstraint, widthConstraint])
但是当我运行它时,我得到了这个
这比我今天早些时候的要好得多。但是,我希望滑块是正常宽度..并且看起来正常只是垂直
关于我错过了什么的任何想法? (哦,忽略左边那个紫色的小分支,那是我添加但尚未约束的另外 2 个滑块。)
【问题讨论】: