Получить значение X, Y на UISlider - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь получить положение X, Y определенного значения на дорожке UISlider, чтобы я мог разместить текстовое поле в этом месте, прежде чем даже переместить ползунок большим пальцем. Я хочу иметь возможность разместить несколько текстовых полей вдоль дорожки, показывая, какое значение находится в этом месте.

Может ли кто-нибудь помочь мне достичь этого?

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 июня 2018
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)
    ])
}
0 голосов
/ 24 июня 2018

Для этого сначала вы найдете рамку большого пальца изображения 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)")


    }
...