获取值在 UISlider 上的 X、Y 位置
Get X, Y position of value on UISlider
我正在尝试获取 UISlider 轨道上特定值的 X、Y 位置,这样我就可以在用拇指移动滑块之前在该位置放置一个文本字段。我希望能够沿着轨道放置多个文本字段,以显示该位置的值。
有人可以帮我实现这个吗?
谢谢
首先你会找到 UISlide 的缩略图框架。
UISlide 的缩略图查找框架使用此方法:-
@IBAction func sliderAction(_ sender: UISlider) {
let _thumbRect: CGRect = sender.thumbRect(forBounds: sender.bounds, trackRect: sender.trackRect(forBounds: sender.bounds), value: sender.value)
let thumbRect: CGRect = view.convert(_thumbRect, from: sender)
print("thumbRect \(thumbRect)")
}
let values: [Float] = [15, 30, 50, 70, 85]
for value in values {
guard (slider.minimumValue...slider.maximumValue).contains(value) else { continue }
let label = UILabel()
label.text = "\(value)"
view.addSubview(label)
label.translatesAutoresizingMaskIntoConstraints = false
let thumbRect = slider.thumbRect(forBounds: slider.bounds,
trackRect: slider.trackRect(forBounds: slider.bounds),
value: value)
let convertedThumbRect = slider.convert(thumbRect, to: view)
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: view.leadingAnchor, constant: convertedThumbRect.midX),
slider.topAnchor.constraintEqualToSystemSpacingBelow(label.bottomAnchor, multiplier: 1)
])
}
我正在尝试获取 UISlider 轨道上特定值的 X、Y 位置,这样我就可以在用拇指移动滑块之前在该位置放置一个文本字段。我希望能够沿着轨道放置多个文本字段,以显示该位置的值。
有人可以帮我实现这个吗?
谢谢
首先你会找到 UISlide 的缩略图框架。
UISlide 的缩略图查找框架使用此方法:-
@IBAction func sliderAction(_ sender: UISlider) {
let _thumbRect: CGRect = sender.thumbRect(forBounds: sender.bounds, trackRect: sender.trackRect(forBounds: sender.bounds), value: sender.value)
let thumbRect: CGRect = view.convert(_thumbRect, from: sender)
print("thumbRect \(thumbRect)")
}
let values: [Float] = [15, 30, 50, 70, 85]
for value in values {
guard (slider.minimumValue...slider.maximumValue).contains(value) else { continue }
let label = UILabel()
label.text = "\(value)"
view.addSubview(label)
label.translatesAutoresizingMaskIntoConstraints = false
let thumbRect = slider.thumbRect(forBounds: slider.bounds,
trackRect: slider.trackRect(forBounds: slider.bounds),
value: value)
let convertedThumbRect = slider.convert(thumbRect, to: view)
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: view.leadingAnchor, constant: convertedThumbRect.midX),
slider.topAnchor.constraintEqualToSystemSpacingBelow(label.bottomAnchor, multiplier: 1)
])
}