2012-12-24 102 views
0

首先,我想说我在这个网站上看到了一些关于如何做到这一点的帖子,虽然没有人对我有效,所以请不要关闭它,直到我得到它的工作。iOS:如何使用滑块设置自定义背景颜色?

我想要做的是使视图的背景变化取决于滑块的值,以便用户可以选择他们想要的背景颜色。

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

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

我在编程很基本的,因为你可能已经回升,因为我只是一个十几岁做它作为一种业余爱好,我会很感激简单的指令,告诉我哪里清楚我需要把代码等

PS它不会让我张贴视角的图像,对不起:(

回答

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]; 
} 
+0

对不起,我不认为我说清楚了。我有三个滑块,一个用于红色,一个用于蓝色,另一个用于绿色,三者的调节给出背景的整体颜色。因此,我需要实现所有三个给予整体颜色 – PolygonHJ

+0

另外我是真的没有任何'换色逻辑',所以提供这将是非常有用的:) – PolygonHJ

+0

为此,你可以让我知道什么颜色改变逻辑你要吗? –

1

作为UISlider实现UIAppearence协议,您可以设置它的背景色,如:

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

或:

[[mySlider appearance] setBackgroundColor:[UIColor lightGrayColor]]; 
相关问题