我想要一个自定义滑块,要求的是minView的高度应为8 pt,maxView的高度应为4 pt,这是可见的角应为圆角。
我将滑块的最小和最大图像作为清晰的alpha图像设置为0.0
对于maxView,我创建了一个UIView,并将其宽度设置为等于滑块的宽度,并使其角部得以保留。
对于minView,我创建了一个UIView,它的前导等于滑块的前导,尾随应等于拇指的中心。
这是我所做的事情的逻辑。
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的拇指。
答案 0 :(得分:0)
这种方法怎么样?
配置UISlide control的属性。
setMinimumTrackImage
,带有8pt图像。setMaximumTrackImage
(含4pt图片)。 stretchable image可以重新创建轨道图像,以保留圆角。您可以在UIImage reference的Defining a Stretchable Image
部分中找到它。对于滑动条的跟踪图像非常有用。