使用UIEdgedInset的自定义UISlider不能很好地呈现

问题描述:

我试图做一个使用图像的自定义uislider(没有可见的旋钮,当用户不能编辑时显示它,当我可以隐藏它时)隐藏它问题是边渲染完美,但右边的部分是可爱的,似乎并不使用边缘... 任何想法如何编辑它?使用UIEdgedInset的自定义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

你有什么想法吗?

+0

请不要关心颜色,这是重要的形状 –

+0

嗯......你有一个拇指图像?而且,如果滑块值设置为100%,全长图像是否正确? – DonMag

+0

100%看起来不太好。 而且我用了一个巨大的拇指封面很多,所以我不能真正用它来隐藏) –

我认为对于最小和最大图像与UISlider有点混淆。

最小图像在拇指的左侧绘制(拉伸)。最大图像被绘制(拉伸)在拇指的右侧。

创建一个小的方形固体红色图像 - 如16x16 - 并将它(不带插页)分配到.setMaximumTrackImage。当你从低到高的价值观时,看看结果如何。

编辑:我没有使用插图闽图像上这个例子...

enter image description here enter image description here

注:我用了一个20×20清晰的图像,在这些盖了大拇指。

+0

这是其中之一bleh我正在绕,我会分离黑色的灰色,但这并不能解释为什么边缘被“切割” –