如何在IOS的UI滑块中添加不同的颜色?

时间:2015-04-24 10:27:53

标签: ios uislider

我正在构建一个iOS应用程序,我在同一个栏上使用2 sliders来选择maxmin值。我已经参考了下面的链接,我正在使用点反馈滑块。

Reference Link

现在我面临的问题是我希望10-20应该是绿色而80-90应该是红色,其余应该是黑色。

请帮助我iOS中的新人。

4 个答案:

答案 0 :(得分:1)

更改滑块的最小轨迹颜色

@property(非原子,强)IBOutlet UISlider *滑块;

[self.fontSlider setMinimumTrackTintColor:[UIColor grayColor]];

答案 1 :(得分:0)

你必须使用图像来实现这一目标。检查此link以查看其完成情况。你不能通过使用UISlider的某些属性来改变颜色。

另请查看Apple发布的UICatalog示例代码应用程序中的示例代码。

<强>更新: 由于您需要进一步说明,请阅读以下文档:

*

  

拇指骑乘的栏被称为滑块的轨道。   滑块控件使用两个不同的图像绘制轨道   定制的。拇指和轨道末端之间的区域   使用最小值绘制与滑块最小值相关联的值   跟踪图像。拇指和轨道末端之间的区域   使用最大值绘制与滑块最大值关联的值   跟踪图像。使用不同的轨道图像以提供   关于哪一端包含最小值的上下文。例如,   最小轨迹图像通常包含蓝色高光   最大轨迹图像包含白色高光。你可以分配   不同的轨道图像对到每个控制状态   slder。为每个状态分配不同的图像可让您自定义   滑块启用,禁用,突出显示时的外观,   等等。

*

因此,如果要连续更改颜色,则必须包含所有颜色的图像。将它们放在NSArrayNSDictionary中(使用键作为颜色名称)并动态使用它。

答案 2 :(得分:0)

您可以在

中处理这种情况
- (IBAction)labelSliderChanged:(NMRangeSlider*)sender{

        int sliderValue=sender.lowerValue;
        NSLog(@"slider value = %d", sliderValue);
        if(sliderValue >= 10 && sliderValue <= 20)
        {
            if([self.view respondsToSelector:@selector(setTintColor:)])
    {
        self.view.tintColor = [UIColor greenColor];
    }
        }
        else if(sliderValue >= 80 && sliderValue <= 90)
        {
            if([self.view respondsToSelector:@selector(setTintColor:)])
    {
        self.view.tintColor = [UIColor redColor];
    }
        }
        else{

            if([self.view respondsToSelector:@selector(setTintColor:)])
    {
        self.view.tintColor = [UIColor blackColor];
    }
        }
    }

答案 3 :(得分:0)

您可以通过设置thumbTintColor

来更新圆点的颜色