UISlider的minView超出了其范围和拇指的中心

时间:2018-10-12 04:28:52

标签: ios swift uiview nslayoutconstraint uislider

我想要一个自定义滑块,要求的是minView的高度应为8 pt,maxView的高度应为4 pt,这是可见的角应为圆角。

我将滑块的最小和最大图像作为清晰的alpha图像设置为0.0

对于maxView,我创建了一个UIView,并将其宽度设置为等于滑块的宽度,并使其角部得以保留。

对于minView,我创建了一个UIView,它的前导等于滑块的前导,尾随应等于拇指的中心。

enter image description here

这是我所做的事情的逻辑。

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的拇指。

enter image description here

1 个答案:

答案 0 :(得分:0)

这种方法怎么样?

配置UISlide control的属性。

  1. setMinimumTrackImage,带有8pt图像。
  2. setMaximumTrackImage(含4pt图片)。

stretchable image可以重新创建轨道图像,以保留圆角。您可以在UIImage referenceDefining a Stretchable Image部分中找到它。对于滑动条的跟踪图像非常有用。