2013-03-01 72 views
0

我一直在嘗試使用屏幕上的標籤單擊按鈕時顯示三種隨機顏色。點擊按鈕時如何隨機顯示三種顏色?

-(IBAction)spinButton:(id)sender; 
{ 
    NSLog(@"Spin started."); 


    NSLog(@"Message"); 
    NSLog(@"Message %@", nsString); 


    printf("%s\n", [@"Button Press" UTF8String]); 
    printf("%s %d %d %d\n", [@"Color: " UTF8String], wheelLeftColor, wheelMiddleColor, wheelRightColor); 

    wheelLeftColor.backgroundColor = [UIColor colorWithRed: 0.9 green: 0.9 blue: 0.6 alpha: 1.0]; 
    wheelMiddleColor.backgroundColor = [UIColor colorWithRed: 0.9 green: 0.3 blue: 0.6 alpha: 1.0]; 
    wheelRightColor.backgroundColor = [UIColor colorWithRed: 0.5 green: 0.6 blue: 0.3 alpha: 1.0]; 
[NSString stringWithFormat:@"%d", int_num] 


time_t seed = time(0); 
srandom((int)seed); 

int num = random() % 3; 

我不知道如何使這項工作。我有一個想法,但不知道如何實現它, 在操作方法中,傳遞標籤對象和顏色代碼 這裏的問題是如何使用整數來存儲值1 - 3來表示每個輪子的顏色? 在此先感謝

回答

2

尚未測試,但它應該工作。

- (UIColor *)randomColor 
{ 
    return [UIColor colorWithRed:[self randomColorComponentValue] green:[self randomColorComponentValue] blue:[self randomColorComponentValue] alpha:1]; 
} 

- (CGFloat)randomColorComponentValue 
{ 
    CGFloat random = (CGFloat)arc4random()%255; 
    return random/255.0f; 
} 

- (IBAction)spinButton:(id)sender 
{ 
    wheelLeftColor.backgroundColor = [self randomColor]; 
    wheelMiddleColor.backgroundColor = [self randomColor]; 
    wheelRightColor.backgroundColor = [self randomColor]; 
} 
+0

在這裏我有一個與CGFloat, – user2038249 2013-03-01 18:25:02

+0

**這個問題很好,但我擔心的是,我想從預定義的顏色值隨機顯示顏色。所以,3秒後,它應該隨機顯示顏色。例如,對於左旋,它必須顯示三種顏色中的任何一種。對於中間輪,它應該顯示三個中的任何一個,同樣也是正確的。它更像是一臺老虎機旋轉。你的時間是讚賞** @Oscar – user2038249 2013-03-01 18:40:52

0

通過回答oscar也是一樣的,更好的詳細。但是,這裏有一個簡潔的方法。

-(UIColor *)randomCOlor{ 

    return [UIColor colorWithRed:(arc4Random()%10)/10.0f green:(arc4Random()%10)/10.0f blue:(arc4Random()%10)/10.0f alpha:1]; 

} 

所以

UIColor *someColor = [self randomColor]; 

更新: 如果您想選擇預定義值的隨機顏色,你可以使用貝羅代碼:

color1,color2,color3爲三(根據您的要求的任何數字)UIColor對象。然後,你可以選擇一個隨機值像下面和3秒的延遲後,設置標籤的顏色:

NSArray *colorArray = [NSArray arrayWithObjects:color1,color2,color3,nil]; 
NSInteger index = arc4random()%[colorArray count]; 
UIColor *selColor = [colorArray objecatAtIndex:index-1]; 

,然後根據你的設置顏色的問題中提到過這種顏色的對象和標籤對象。

您可以使用performSelector:withObject:withDelay:在延遲後調用方法。

+0

**感謝您的時間,但我擔心的是,我想從預定義的顏色值隨機顯示顏色。所以,3秒後,它應該隨機顯示顏色。例如,對於左旋,它必須顯示三種顏色中的任何一種。對於中間輪,它應該顯示三個中的任何一個,同樣也是正確的。它更像是一臺老虎機旋轉。你的時間讚賞** @Rakesh – user2038249 2013-03-01 18:42:51

+0

如果你想從一組隨機值中選擇一個隨機顏色,我已經更新了代碼。 – Rakesh 2013-03-02 14:09:29

相關問題