2012-12-24 103 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]]; 
相關問題