我想要一个自定义 slider ,要求是 minView 的高度应为 8 pt,maxView 的高度应为 4 pt,可见的角应为圆角。
我将 slider 的最小和最大图像指定为 alpha 的清晰图像为 0.0
对于 maxView,我创建了一个 UIView 并将其宽度设置为等于 slider 的宽度,并使其角变圆。
对于 minView,我创建了一个 UIView,它的前导等于 slider 的前导,尾随应等于拇指的中心。
这是我所做的逻辑。
func changeValue() {
let difference = slider.maximumValue - slider.minimumValue
let thumbWidth = CGFloat(44/2)
let scale = (slider.frame.size.width-thumbWidth)/CGFloat(difference)
let width = scale * CGFloat(slider.value)
minSlideWidth.constant = width
self.view.layoutIfNeeded()
}
但是 minView 的宽度不会以拇指中心为中心增加或减少。如果您看到图像,它已经越过了 UIslider 的拇指。
最佳答案
这种方法怎么样?
配置 UISlide control 的属性.
setMinimumTrackImage
,带有 8pt 图像。setMaximumTrackImage
,带有 4pt 图像。
轨道图像可以通过 stretchable image 重新创建为了保持圆角。您可以在 UIImage reference 的定义可拉伸(stretch)图像
部分中找到它。 。对于滑动条的跟踪图像非常有用。
关于ios - UISlider 的 minView 超出了它的边界和拇指的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52772287/