iPhone UISlider带有两个滑块/指示器?

9

有人知道是否存在带有两个拇指的iPhone UISlider控件版本吗?我需要一个控件,可以指定值的范围。UISlider API文档似乎暗示标准控件不支持此功能,因此我想知道是否有人有解决方案(或自己解决了这个问题)。

6个回答

7

你好,我看了你的代码,想在设备上移植并测试一下。我只需要使用RangeSlider.h和RangeSlider.m文件吗?我可以将它们集成到我的应用程序中并查看其工作情况吗? - Namratha
2
抱歉,刚才在 GitHub 上推送了一些更改来修复这个问题。 - CharlieMezak
谢谢!我正在尝试理解这段代码。你有没有带注释的版本,可以解释所有计算和基本流程?顺便说一句,这太棒了! :) 我已经在设备上尝试过了。 - Namratha
AppDelegate_iPhone.m 中将第24行注释掉(或将其更改为某个值<1.0)。在对 slider.minimumRangeLength 的值进行转换为 3.0 时存在错别字。由于整个范围仅为1.0宽,导致滑块根本无法移动。 - Norman
非常有帮助。不过似乎轨道图像旋转了90度。当我移动它时,只有蓝色的一条会拉伸。 - Daniel G. Wilson
显示剩余2条评论

5

此页面已不存在。 - ingenspor
嗨ingespor,我刚刚更新了链接以指向正确的位置。 - Felipe Cypriano

3
我也遇到了这个问题。我解决它的方法有点儿取巧,但对像我这样的新手来说更简单!
我在一起放了两个滑块。将其中一个轨道用透明的.png文件设置为透明,使其不可见。然后创建了一个sliderReleased方法,将其与interface builder中的touch up inside事件链接起来,以切换每个滑块的userInteractionEnabled:状态。
这意味着你只能同时设置一个滑块,你必须先触摸其中一个,然后才能设置另一个,但对于我的目的来说,它已经足够了。
我将两个滑块的touch up inside都链接到了这个方法,并将标签设置为1和2,并像正常情况下那样将value changed事件链接到各自的方法。
-(IBAction) onReleaseBP: (id) sender {
if ([sender tag]==1) {
    [diastolicSld setUserInteractionEnabled:NO];
    [systolicSld setUserInteractionEnabled:YES];     
}
else {
    [systolicSld setUserInteractionEnabled:NO];
    [diastolicSld setUserInteractionEnabled:YES];
}

0
我制作了一个名为DoubleSlide的范围滑块,它不是基于UISlider。但是你可以添加图片使其看起来像一个:
它在这里: https://github.com/richy486/RACommon

0
这是我的解决方案。与其他双滑块控件相比的一个优点是,我的控件支持在代码中和使用IBDesignable/IBInspectable在Interface Builder中设置控件。

https://github.com/vermont42/JFADoubleSlider


-1

我不知道当前是否有一个(即仍在积极开发中),但您可能可以通过查看BWToolkit的源代码(http://brandonwalkin.com/bwtoolkit/)来推导出一个。

有一个类似iTunes风格的滑块实现,您可能可以进行扩展。

它是BSD许可证,并且源代码可从bitbucket获取。


BWToolkit是为Mac而设计的,不适用于iPhone。 - Peter Hosey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接