2017-08-23 8 views
0

私はこのようなポインタの位置を示し、スライダのラベルを作りたい:スウィフト3 - スライダーのポインタ幅

enter image description here

これは、スライダーのポインタが移動このラベルを動いている私のコードです:

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

あなたはthumbRectと親指のサイズを盗ん必要があります。

let thumbSize = slider.thumbRect(forBounds: slider.bounds, trackRect: slider.trackRect(forBounds: slider.bounds), value: 0).size