自定义 UISlider 多了一个视图
Posted
技术标签:
【中文标题】自定义 UISlider 多了一个视图【英文标题】:Customized UISlider with one more view 【发布时间】:2017-06-12 17:02:41 【问题描述】:我需要在 swift 中创建 UISlider
的子类,以便它具有 3 个条形视图和 1 个拇指图像。目前 ios 仅提供 2 个条形视图和 1 个缩略图。
两个条形视图是 minimumTrackImage 和 maximumTrackImage。
我需要在右侧多一个条形视图,这是 UISlider 的允许限制。即如果滑块的当前值为 50,则最大允许值为 100。我可以将允许限制设置为 80,滑块将如下所示。
谁能帮忙...
【问题讨论】:
既然你不能轻易拥有三个轨道图像,你能用两个吗?你的minimumTrackImage
是纯绿色,这很好。让你的maximumTrackImage
更有活力……在你的情况下,是白色的,里面有一个灰色的条。如果需要,不确定如何使用自动布局......但是创建一个白色背景的图像,灰色条的宽度为 80%,这很容易制作。
【参考方案1】:
这是我快速整理的一个示例,希望能显示您的需求(请参阅下面的 github-link)....
Link to the example "permissibleLimitSlider" on GitHub (解决方案使用 Swift-3.1、Xcode-8.3.3 和 iOS-Simulator-10.0 完成)
诀窍是:
A) 创建一个新的 maximumTrackImage(在我的示例中称为“滑块轨道”)。我在 Photoshop 中创建了该图像(但您可以使用不同的图形程序)。
B) 将您的 Storyboard-Slider 中的 IBAction(带有事件“ValueChanged”)添加到 MyViewController。在这种方法中,您只需观察 sender.value 并将其限制为 0.8
这就是我的 github 示例中的样子: 随意更改项目中的 Asses-images 来更改颜色!
希望这个静态限制(0.8)是您所需要的。如果您需要动态限制(可在代码中设置),我建议您提供 10 张图像,使 Slider 成为“离散滑块”,并在需要时将您的 maximumTrackImage 设置为一个或另一个图像...
有关如何使您的滑块成为离散滑块的更多示例,请参见here
关于如何制作自定义滑块的非常好的教程可以找到here
【讨论】:
以上是关于自定义 UISlider 多了一个视图的主要内容,如果未能解决你的问题,请参考以下文章