更改标签背景颜色...第一次红色,然后第二次点击黄色

时间:2014-09-10 01:52:14

标签: ios xcode background

我找不到与之相关的任何内容。我是初学者,但我假设我需要NSArray来改变颜色。

无论如何,我有一个按钮,当你将标签背景更改为绿色时单击按钮。我如何制作它,以便第一次点击它将标签背景更改为绿色...然后第二次单击它将背景更改为黄色

- (IBAction)studentOne:(id)sender {
_studentOne.backgroundColor = [UIColor greenColor];
_studentOne.backgroundColor = [UIColor yellowColor];
_studentOne.backgroundColor = [UIColor redColor];
_studentOne.backgroundColor = [UIColor blackColor];
_studentOne.backgroundColor = [UIColor whiteColor];


}

那将是我的序列。

是否涉及

NSArray *colorArray;
colorArray = [NSArray array with objects:

我试过这个,因为我认为这可能就像点击按钮上的文字颜色一样

- (IBAction)studentOne:(id)sender {
NSArray *colorArray;
colorArray = [NSArray arrayWithObjects:

@"_studentOne.backgroundColor = [UIColor greenColor]",
@"_studentOne.backgroundColor = [UIColor yellowColor]",
@"_studentOne.backgroundColor = [UIColor redColor]",
@"_studentOne.backgroundColor = [UIColor blackColor]",
@"_studentOne.backgroundColor = [UIColor whiteColor]",
              nil];


}

1 个答案:

答案 0 :(得分:0)

你对阵列的看法是对的,对语法略有不同。这样的事情会起作用:

- (IBAction)studentOne:(id)sender {

    static NSArray *colors;
    if (!colors) colors = @[[UIColor redColor], [UIColor greenColor], [UIColor yellowColor]];

    UIColor *currentColor = myLabel.backgroundColor;
    NSInteger index = [colors indexOfObject:currentColor];
    index = (index == NSNotFound || index == colors.count-1)? 0 : index+1;

    self.myLabel.backgroundColor = colors[index];
}