使用UIEdgedInset的自定义UISlider无法很好地渲染

时间:2017-03-31 11:52:30

标签: ios swift uislider uiedgeinsets

我正在尝试使用图像进行自定义uislider(没有可见的旋钮,当用户无法编辑并显示时我隐藏它)问题是侧面渲染完美但正确的部分是可爱,似乎没有使用边缘... 知道如何编辑它吗?

实际代码:

    let capLeft:CGFloat =  9
    let capRight:CGFloat = 9
    imageMin = imageMinimum?.resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: capLeft, bottom: 0, right: capRight), resizingMode: .stretch)
    imageMax = imageMaximum
    slider.setMaximumTrackImage(imageMax, for: UIControlState())
    slider.setMinimumTrackImage(imageMin, for: UIControlState())

如何渲染: bad slider rendering

它应该如何呈现: good Rendering

最小曲目图片: enter image description here

最大跟踪图片:enter image description here

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为对UISlider的最小和最大图像存在一些混淆。

在拇指的左侧绘制(并拉伸)最小图像。 Max图像在Thumb的右侧绘制(和拉伸)。

创建一个小的方形纯红色图像 - 例如16x16 - 并将其(没有插入)分配给.setMaximumTrackImage。当你从低值变为高值时,看看它最终会如何看待。

编辑:我在这个例子的Min图像上使用了NO insets ...

enter image description here enter image description here

注意:我在这些大写字母中使用了20x20清晰图像。