UISlider 轨道高度

Pan*_*včí 4 uislider swift3

我已经实现了 UISlider,我需要调整轨道高度。我发现了这个,但它不起作用。

self.slider.trackRect(forBounds: CGRect(x: 0, y: 0, width: 100, height: 100))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Pan*_*včí 12

好的...我使用了 matt 的答案 + 提供的示例,并根据我的需要自定义了代码。

let coinEnd = UIImage(/*HERE_LEFT_BLANK_IMG*/).resizableImage(withCapInsets:
        UIEdgeInsetsMake(0,7,0,7), resizingMode: .stretch)
.
.
.
.

override func trackRect(forBounds bounds: CGRect) -> CGRect {
    var result = super.trackRect(forBounds: bounds)
    result.origin.x = 0
    result.size.width = bounds.size.width
    result.size.height = 10 //added height for desired effect
    return result
}

override func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect {
    return super.thumbRect(forBounds:
        bounds, trackRect: rect, value: value)
        .offsetBy(dx: 0/*Set_0_value_to_center_thumb*/, dy: 0)
}
Run Code Online (Sandbox Code Playgroud)

然后将其继承给我的 Slider 和 woala。

在此处输入图片说明

这是我想要的结果。

在此处输入图片说明

所有冰雹马特...谢谢你。


mat*_*att 0

找到了这个,但它不起作用

因为你用错了。你不叫它。您子类化并覆盖它。

然而,正确的方法是为轨道提供新图像,带有setMinimumTrackImagesetMaximumTrackImage

  • 示例:https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch12p585slider/ch25p860slider/MySlider.swift (2认同)