我自定义了一个 UISlider
并且一切正常,除非我将 slider 拖动到 100%。然后圆形的帽子被方形取代。
以下是我如何自定义 slider :
@IBInspectable var trackHeight: CGFloat = 14
override func trackRect(forBounds bounds: CGRect) -> CGRect {
return CGRect(origin: bounds.origin, size: CGSize(width: bounds.width, height: trackHeight))
}
98% 图片:
100% 图片:
最佳答案
您可以通过将minimumTrackTintColor
和maximumTrackTintColor
设置到UIColor.clear
中来移除轨道背景,然后自己绘制轨道背景。
例如:
class CustomSlider: UISlider {
override func trackRect(forBounds bounds: CGRect) -> CGRect {
return bounds
}
override func draw(_ rect: CGRect) {
guard let context = UIGraphicsGetCurrentContext() else {
return
}
context.setFillColor(UIColor.green.cgColor)
let path = UIBezierPath(roundedRect: rect, cornerRadius: rect.size.height / 2).cgPath
context.addPath(path)
context.fillPath()
}
}
关于ios - UISlider:更改了高度,但最大值闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53262990/