我想为滑块制作一个标签,显示指针的位置,如下所示:
这是我在滑块指针移动时移动此标签的代码:
var sliderPointWidth : CGFloat = 32.0
@IBAction func sliderValueChanged( _ slider : UISlider ){
sliderLabel.text = "\( Int( roundf( slider.value ) ) )"
let leftMove = slider.frame.minX
let allRange = ( slider.frame.width - sliderPointWidth ) * CGFloat( slider.value / slider.maximumValue )
let middleOfSliferLabel = sliderLabel.frame.width / 2
let x = leftMove + sliderPointWidth / 2 + allRange - middleOfSliferLabel
sliderLabel.frame.origin = CGPoint( x: CGFloat(x) , y: sliderLabel.frame.minY )
}
但是为了使标签的中间x和指针的中间x相同,我需要知道这个指针的宽度。流利地看着这个,我明白它大约是32分。但我不知道其他屏幕的这个值。 UISlider
中是否有任何方法可以说出这个值?
答案 0 :(得分:0)
您应该使用thumbRect
let thumbSize = slider.thumbRect(forBounds: slider.bounds, trackRect: slider.trackRect(forBounds: slider.bounds), value: 0).size