iOS:如何使用滑块设置自定义背景颜色?

时间:2012-12-24 11:28:06

标签: ios cocoa-touch uiview uislider

首先,我想说我在这个网站上看到了几个关于如何做到这一点的帖子,虽然似乎没有一个对我有用,所以请不要关闭它直到我开始工作。

我想要做的是让视图的背景根据滑块的值而改变,以便用户可以选择他们想要的背景颜色。

self->colorView.backgroundColor = [UIColor myColor];
myColor = 

我想我需要一些这样的代码,虽然我不知道如何定义我的颜色会是什么样的东西;像“red:redSlider / 255”等其他颜色?我也不知道在哪里实现上面的代码,因为我需要它在使用时更改滑块的值时不断更新。

我在编程方面非常基础,因为你可能已经习惯了,因为我只是一个青少年,这是一个爱好,我很欣赏简单的指示,告诉我清楚我需要放置代码等等。

P.S。它不会让我发布视图的图像,抱歉:(

2 个答案:

答案 0 :(得分:2)

在ViewController.h文件中定义

@property (nonatomic, strong) IBOutlet UISlider *mySlider;

在ViewController.m文件中,添加:

- (void) sliderValueChanged:(UISlider *)slider
{
    // Handle your color changing logic here
    myView.backgroundColor = [UIColor colorWithRed:0.4f green:0.5f blue:1.0f alpha:1.0f];
}

在Interface Builder中, 拖动UISlider以查看并将其“Value Changed”事件插座设置为sliderValueChanged方法。

现在,当您更改屏幕上的滑块时,颜色应根据方法sliderValueChanged

中的逻辑进行更改

以下是符合您要求的逻辑:

- (void) sliderValueChanged:(UISlider *)slider
{
    // Assuming slider minimum is 0 and maximum is 1
    CGFloat redVal = 0.0f;
    CGFloat yellowVal = 0.0f;
    CGFloat blueVal = 0.0f;
    if (slider == redSlider)
    {
        redVal = slider.value;
    }
    else if (slider == yellowSlider)
    {
        yellowVal = slider.value;
    }
    else if (slider == blueSlider)
    {
        blueVal = slider.value;
    }
    myView.backgroundColor = [UIColor colorWithRed:redVal green:greenVal blue:blueVal alpha:1.0f];
}

答案 1 :(得分:1)

当UISlider实现UIAppearence协议时,您可以将其背景颜色设置为:

mySlider.backgroundColor = [UIColor lightGrayColor]; // Or any other color

或:

[[mySlider appearance] setBackgroundColor:[UIColor lightGrayColor]];