Настройка высоты UISlider - программно создан - PullRequest
0 голосов
/ 30 октября 2019

Как создать собственную высоту для ползунка, когда ползунок был создан программно?

Ответы на этот похожий вопрос объясняют, как это сделать, когда слайд настроен сРаскадровка. Что если вы не используете раскадровку, а слайдер настроен в соответствии с этими линиями программно? Спасибо!

let slider: UISlider = {
    let slider = UISlider()
    slider.minimumValue = 1
    slider.maximumValue = 7
    slider.value = 1
    slider.maximumTrackTintColor = UIColor.red
    slider.minimumTrackTintColor = UIColor.green
    slider.thumbTintColor = UIColor.blue
    slider.isContinuous = true
    slider.translatesAutoresizingMaskIntoConstraints = false
    return slider
}()

1 Ответ

1 голос
/ 30 октября 2019

Вам нужно будет создать пользовательский слайдер и переопределить trackRect(forBounds bounds: CGRect) -> CGRect

class CustomSlider: UISlider {
   let trackHeight: CGFloat = 12 //desired track width, in points
   override func trackRect(forBounds bounds: CGRect) -> CGRect {
      let track = super.trackRect(forBounds: bounds)
      return CGRect(x: track.origin.x, y: track.origin.y, width: track.width, height: trackHeight)
   }
}

и изменить свою реализацию, чтобы использовать этот

let slider: CustomSlider = {
       let slider = CustomSlider()
       slider.minimumValue = 1
       slider.maximumValue = 7
       slider.value = 1
       slider.maximumTrackTintColor = UIColor.red
       slider.minimumTrackTintColor = UIColor.green
       slider.thumbTintColor = UIColor.blue
       slider.isContinuous = true
       slider.translatesAutoresizingMaskIntoConstraints = false
       return slider
   }()
...