【问题标题】:How to Create Range Slider programmatically in iOS?如何在 iOS 中以编程方式创建范围滑块?
【发布时间】:2015-08-15 19:33:21
【问题描述】:

我想创建一个范围滑块。但是当我在同一位置分配 2 个滑块时,只有 1 个在工作。我找到了一些外部 API 来创建 Slider。有什么方法可以在 iOS 中以编程方式创建 Range 滑块。

这是我的代码..

  CGRect frame = CGRectMake(20, 330, 300, 60);

slider1 = [[UISlider alloc] initWithFrame:frame];
[slider1 addTarget:self action:@selector(sliderActionMin:) forControlEvents:UIControlEventValueChanged];
[slider1 setBackgroundColor:[UIColor clearColor]];
slider1.minimumValue = 0.0;
slider1.maximumValue = 55.0;
slider1.continuous = YES;
slider1.value= 16
slider1.contentMode=UIViewContentModeScaleToFill;
[self.view addSubview:slider1];


slider2 = [[UISlider alloc] initWithFrame:frame];
[slider2 addTarget:self action:@selector(sliderActionMin:) forControlEvents:UIControlEventValueChanged];
[slider2 setBackgroundColor:[UIColor clearColor]];
slider2.minimumValue = 0.0;
slider2.maximumValue = 55.0;
slider2.continuous = YES;
slider2.contentMode=UIViewContentModeScaleToFill;
slider2.value=[SingletonClass sharedSingleton].minAge;
[self.view addSubview:slider2];

【问题讨论】:

  • 为什么要在同一个位置分配2个滑块?
  • 意思是两个滑块在一个位置,1代表最小值,2nd代表最大值..你明白吗?
  • @Bannings-因为我想显示年龄范围。像 16 到 22
  • 使用 UIView 创建自定义控件!或者,如果您发现了一些外部 API,而不仅仅是使用它!这有什么问题?
  • UISlider 不支持两个拇指或一个范围。它只支持单个值。

标签: ios rangeslider


【解决方案1】:

您正在将一个滑块添加到另一个滑块之上。因此,根据 Cocoa-Touch 标准,只有顶部(新添加的)滑块将检测所有事件。当您在相同的帧值上添加了两个滑块时,第一个滑块将无法触摸。

有很多适用于 iOS 的 Range Slider 示例。以下是一些可能对您有所帮助的示例

【讨论】:

  • MARKRangeSlider 真的很棒也很直观,我已经浪费了半天时间与 NMRangeSlider 搏斗
  • 我用过TTRangeSlider,它有很多可定制的功能
【解决方案2】:

VPRangeSlider : 你也可以使用它,它为 iOS 提供了分段和不分段的滑块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 2018-09-18
    • 2011-12-12
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多