答案 0 :(得分:1)
您必须完成位的工作,但您不需要从头开始构建完整的解决方案。
添加标签非常简单 - UISlider
"拉伸"由于UISlider
控件只有一个轨道/背景图像和一个"当前"因此动画显示的中心左右两侧的轨迹图像(或色调)会有点棘手。拉伸在左侧的图像。
一种方法是将UISlider
曲目图像设置为透明或隐藏,然后覆盖"覆盖"你的"全线"顶部的滑块和你的"蓝线"。当滑块值发生变化时(拖动时),更改蓝线的边框。
使用自动布局和约束会非常简单。
编辑:一个非常快速的例子。 "拇指"有目的地移动到"自定义滑块"显示图像...
而且,这是获得该代码的代码:
import UIKit
class SliderViewController: UIViewController {
// @IBOutlets needed, but I'm just showing the "code" here
// ...
@IBAction func sliderValueChanged(_ sender: Any) {
if let s = sender as? UISlider {
updateSlider(pct: CGFloat(s.value))
}
}
func updateSlider(pct: CGFloat) -> Void {
let p = (pct - 0.5) * 2.0
theValueLabel.text = String(format: "%0.1f", p * 10)
leftSideValueWidth.constant = p >= 0.0 ? 0.0 : (leftSideHolderView.frame.size.width * (-p))
rightSideValueWidth.constant = p >= 0.0 ? (rightSideHolderView.frame.size.width * p) : 0.0
}
override func viewDidLoad() {
super.viewDidLoad()
// init slider to center
updateSlider(pct: 0.5)
// set default left- and right-side "track" images to empty images
theSlider.setMinimumTrackImage(UIImage(), for: .normal)
theSlider.setMaximumTrackImage(UIImage(), for: .normal)
}
}
框架的黑色UIView
..."滑动条的灰色UIView
" ...左/右侧的两个透明UIView
框架...两个蓝色UIView
- 每边一个。和标准UISlider
控件。这是关于它的。
如果默认的Thumb图像太大而无法满足您的需求,您也可以设置自定义Thumb图像。