UISlider 轨道高度
UISlider track height
我已经实现了 UISlider,我需要调整轨道高度。
我找到了这个,但它不起作用。
self.slider.trackRect(forBounds: CGRect(x: 0, y: 0, width: 100, height: 100))
found this but its not working
因为你用错了。您不会 调用 它。您创建子类,然后 覆盖 它。
但是,正确的方法是为轨道提供新图像,setMinimumTrackImage
和 setMaximumTrackImage
。
好的...我使用了 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)
}
然后将其继承到我的 Slider 和 woala。
这是我想要的结果。
万岁马特...谢谢。
我已经实现了 UISlider,我需要调整轨道高度。 我找到了这个,但它不起作用。
self.slider.trackRect(forBounds: CGRect(x: 0, y: 0, width: 100, height: 100))
found this but its not working
因为你用错了。您不会 调用 它。您创建子类,然后 覆盖 它。
但是,正确的方法是为轨道提供新图像,setMinimumTrackImage
和 setMaximumTrackImage
。
好的...我使用了 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)
}
然后将其继承到我的 Slider 和 woala。
这是我想要的结果。
万岁马特...谢谢。