我找不到与之相关的任何内容。我是初学者,但我假设我需要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];
}
答案 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];
}