我想稍微修改一下UISlider
。确切地说,我希望拇指具有自定义形状(带有圆角和底部阴影的正方形/矩形)。
我找到的唯一答案就是“创建自己的自定义滑块”。但我不知道该怎么做,这比仅仅尝试修改UISlider
还要多。
根据我的研究,我发现你可以将图像分配给拇指。
所以我的问题如下:有没有办法用UIImage
“创建”CGRect
所以我可以拥有我想要的任何形状(方形/矩形在此案件)?当然,是UISlider
甚至可能实现?
答案 0 :(得分:7)
首先,从你的形状创建一个图像。
第三步,为特定状态设置滑块的图像:
for state: UIControlState in [.Normal, .Selected, .Application, .Reserved] {
slider.setThumbImage(yourImageThatHasBeenResized), forState: state)
}
我认为你不能在UILabel
上加UISlider
。您必须创建标签,然后将其与滑块相同的x对齐。
答案 1 :(得分:4)
您不需要调整图片大小。您可以为视网膜和非视网膜设备提供图像。 " @ 2×"在图像扩展名之前是程序处理大小调整的简单指示符。
您可以像这样设置图像:( Swift 4 )
for state: UIControlState in [.normal, .selected, .application, .reserved] {
slider.setThumbImage(UIImage(named: "sliderThumbNormal@2x.png"), for: state)
}
// if you want a different image while dragging the slider, use the hightlighted state
slider.setThumbImage(UIImage(named: "sliderThumbSelected@2x.png"), for: .highlighted)