UISlider - 将线条/图像绘制到轨道(条形图)
Posted
技术标签:
【中文标题】UISlider - 将线条/图像绘制到轨道(条形图)【英文标题】:UISlider - draw line / image to the track (bar) 【发布时间】:2014-09-08 15:40:28 【问题描述】:我有UISlider
的最小和最大轨道颜色。我想在滑块轨道的中间绘制垂直线(或图像)。这条线必须一直存在,只有它上面的颜色会不同(最小/最大轨道颜色)。
如果我将 UIImage 放在 Slider 背景上,轨道会覆盖它。如果我为曲目设置了清晰的颜色,我可以看到线条,但没有来自曲目的颜色(显然)。有什么简单的方法,怎么做,或者我必须重写 Slider 的 drawRect 方法?
图片中的滑块上的东西
【问题讨论】:
有很多关于创建自己的滑块子类的教程。你有什么理由试图避免覆盖drawRect
?它并不困难,而且比试图覆盖外部的东西更优雅,更不容易破损。
我想我会这样做。这可能是最好的方法。
查看此link 将有助于自定义您的滑块。
【参考方案1】:
请注意,此类项目的“终极”解决方案是……
http://www.paintcodeapp.com
正如@BradAllred 所指出的,这里的根本问题是:你试图避免 drawRect。
实际上,您只能通过继承 UIControl 或滑块来实现您的目标。
正如其他人所提到的,幸运的是,有很多很棒的教程等,可以做到这一点——而且并不难。
paintcodeapp.com 再次成为制作 ios 应用的“不可思议的秘诀”,尽情享受吧。
【讨论】:
谢谢,不知道这个。它帮助了我 如果你指的是paintcode,它是一个了不起的产品嗯!享受。【参考方案2】:添加一个 1 像素宽且具有 Slider 高度的 UIView 并将其放在滑块上。
【讨论】:
是的..这也是我的想法之一。但是这样,我在滑块拇指前面有 UIView 在滑块委托中检查滑块何时处于 50% 并使视图对其他所有人不可见 % 使其可见。这是唯一简单的解决方案。【参考方案3】:创建一个 CALayer,绘制它,(甚至添加图像),然后将该层作为子层添加到 Slider 的 layer.contents。
【讨论】:
以上是关于UISlider - 将线条/图像绘制到轨道(条形图)的主要内容,如果未能解决你的问题,请参考以下文章