自定义 UISlider(无需编写自定义代码)

Posted

技术标签:

【中文标题】自定义 UISlider(无需编写自定义代码)【英文标题】:Customising UISlider (without coding a custom one) 【发布时间】:2013-06-21 23:15:12 【问题描述】:

我想要一个具有统一绿色(无渐变)的 UISlider。

当我尝试绘制 uislider 的轨迹时,即使我放置了线条,它似乎也有渐变:

slider.backgroundColor = [UIColor clearColor];

(图像中的第二个滑块)

当我尝试将图像设置为绿色时(在图片中是蓝色但忽略它......)我无法将图层的角变圆:

slider.layer.cornerRadius = 10;

编辑:

我最终定制了它UISlider custom images and thumb height?

我是否可以在不自定义 uislider 的情况下实现这一目标?

【问题讨论】:

用圆角更新你的图片。 这可能是最好的解决方案。我要尽快试试。谢谢 【参考方案1】:

Ray Wenderlich's site 实际上有一个关于自定义UIKit 组件的免费教程。见User Interface Customization in ios 6。

请注意,虽然本教程的标题为 in iOS 6,但 appearance 代理从 iOS 5.0 开始可用,因此本教程的大部分内容实际上与 iOS 5.0+ 相关。

编辑

不幸的是,您提到的渐变实际上是默认情况下覆盖在色调颜色之上的图像,并且似乎没有简单的方法(例如property)禁用它。

不过,正如 cmets 中的 rmaddy 建议,您可以简单地创建并使用带有圆角的图像来解决这个问题。

【讨论】:

【参考方案2】:

您也可以通过界面构建​​来完成。选择您想要使用的任何颜色或图像。

【讨论】:

我之前尝试过这个解决方案(第二个滑块)。这里的问题是颜色不均匀,上面有渐变,我不能去掉。 然后你可以简单地把你的图像放在最小图像和最大图像中 我也采用了这种方法(第一个滑块)。我的问题是我无法将圆角应用于轨道。 ***.com/questions/10311996/…【参考方案3】:

斯威夫特 4 在slider.layer.cornerRadius = 10之后添加这一行

    slider.clipsToBounds = true

【讨论】:

以上是关于自定义 UISlider(无需编写自定义代码)的主要内容,如果未能解决你的问题,请参考以下文章

在ios中自定义progressview / UISlider

修改自定义 UISlider

自定义 UISlider - 增加“热点”大小

自定义 UISlider 图像卡住

UISlider 自定义轨道图像未正确设置

自定义 UISlider 图像无法正常工作