【问题标题】:UISlider - draw line / image to the track (bar)UISlider - 将线条/图像绘制到轨道(条形图)
【发布时间】:2014-09-08 15:40:28
【问题描述】:

我有UISlider 的最小和最大轨道颜色。我想在滑块轨道的中间绘制垂直线(或图像)。这条线必须一直存在,只有它上面的颜色会不同(最小/最大轨道颜色)。

如果我将 UIImage 放在 Slider 背景上,轨道会覆盖它。如果我为曲目设置了清晰的颜色,我可以看到线条,但没有来自曲目的颜色(显然)。有什么简单的方法,怎么做,或者我必须重写 Slider 的 drawRect 方法?

图片中的滑块上的东西

【问题讨论】:

  • 有很多关于创建自己的滑块子类的教程。你有什么理由试图避免覆盖drawRect?它并不困难,而且比试图覆盖外部的东西更优雅,更不容易破损。
  • 我想我会这样做。这可能是最好的方法。
  • 查看此link 将有助于自定义您的滑块。

标签: ios objective-c uislider


【解决方案1】:

请注意,此类项目的“终极”解决方案是……

http://www.paintcodeapp.com

正如@BradAllred 所指出的,这里的根本问题是:你试图避免 drawRect

实际上,您只能通过继承 UIControl 或滑块来实现您的目标。

正如其他人所提到的,幸运的是,有很多很棒的教程等,可以做到这一点——而且并不难。

paintcodeapp.com 再次成为制作 iOS 应用的“不可思议的秘诀”,尽情享受吧。

【讨论】:

  • 谢谢,不知道这个。它帮助了我
  • 如果你指的是paintcode,它是一个了不起的产品嗯!享受。
【解决方案2】:

添加一个 1 像素宽且具有 Slider 高度的 UIView 并将其放在滑块上。

【讨论】:

  • 是的..这也是我的想法之一。但是这样,我在滑块拇指前面有 UIView
  • 在滑块委托中检查滑块何时处于 50% 并使视图对其他所有人不可见 % 使其可见。这是唯一简单的解决方案。
【解决方案3】:

创建一个 CALayer,绘制它,(甚至添加图像),然后将该层作为子层添加到 Slider 的 layer.contents。

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 2021-06-16
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多