У меня есть слайдер с 5 частями, которые я хотел перешагнуть за эти части!и я сделал это:
@IBAction func changeCostSlider(_ sender: UISlider) {
sender.value = roundf(costSlider.value)
}
Я также хочу добавить метку поверх большого пальца моего ползунка, я пытался добавить этот код в код выше:
let trackRect: CGRect = costSlider.trackRect(forBounds: costSlider.bounds)
let thumbRect: CGRect = costSlider.thumbRect(forBounds: costSlider.bounds , trackRect: trackRect, value: costSlider.value)
let x = thumbRect.origin.x + costSlider.frame.origin.x
let y = costSlider.frame.origin.y - 20
sliderLabel.center = CGPoint(x: x, y: y)
, но когдаЯ перемещаю свой ползунок, мой ярлык выпрыгивает из места, где я поместил ярлык в раскадровку, и у него есть некоторые лаги!Кто-нибудь есть какие-либо предложения о том, как добавить этот ярлык в мой шаг слайдера и работает правильно?во-вторых, он возвращается на прежнее место!как я могу это решить?!
Я пытался добавить свою UILabel программно, и она не работает, пока я не коснусь большого пальца!и вот как это делается:
var sliderLableP = UILabel()
@IBAction func changeCostSlider(_ sender: UISlider) {
sender.value = roundf(costSlider.value)
print(costSlider.value)
let trackRect: CGRect = costSlider.trackRect(forBounds: costSlider.bounds)
let thumbRect: CGRect = costSlider.thumbRect(forBounds: costSlider.bounds , trackRect: trackRect, value: costSlider.value)
let x = thumbRect.origin.x + costSlider.frame.origin.x
let y = costSlider.frame.origin.y - 20
sliderLableP.center = CGPoint(x: x, y: y)
}
и в моем viewDidLoad я добавил это:
sliderLableP = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
let trackRect: CGRect = costSlider.trackRect(forBounds: costSlider.bounds)
let thumbRect: CGRect = costSlider.thumbRect(forBounds: costSlider.bounds , trackRect: trackRect, value: costSlider.value)
let x = thumbRect.origin.x + costSlider.frame.origin.x
let y = costSlider.frame.origin.y - 20
sliderLableP.center = CGPoint(x: x, y: y)
sliderLableP.textAlignment = NSTextAlignment.center
sliderLableP.textColor = UIColor.blue
self.containerView.addSubview(sliderLableP)
containerView.bringSubview(toFront: sliderLableP)