iOS 自定义 UISlider 的 trackRect

1,595 阅读1分钟

iOS 自定义 UISlider 的 trackRect

自定义 slider 需要定义 UISlider 的子类,然后重写下面两个方法

public class LQTimeSlider: UISlider {
    override open func trackRect(forBounds bounds: CGRect) -> CGRect {
        let trackHeigt:CGFloat = 2
        let position = CGPoint(x: 0 , y: 15)
        let customBounds = CGRect(origin: position, size: CGSize(width: bounds.size.width, height: trackHeigt))
        super.trackRect(forBounds: customBounds)
        return customBounds
    }

    override open func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect {
        
        var newRect = rect
        newRect.origin.x -= 10
        newRect.origin.y += 1
        newRect.size.width += 20
        return super.thumbRect(forBounds: bounds, trackRect: newRect, value: value).insetBy(dx: 10, dy: 10)
    }
}