我有四个 UIButtons
代表 4 个答案。我已经设法将所有内容连接起来,并以绿色显示正确答案,以红色显示错误答案。
我唯一的问题是,当用户选择错误答案时,我会将所有答案灰显。我也想向用户展示正确答案。我试过 else if 语句但遗漏了一些东西,有什么建议吗?
-(IBAction)Answer1:(id)sender{
if (Answer1Correct == YES) {
[Answer1 setTitle:@"Correct" forState:UIControlStateNormal];
[Answer1 setBackgroundColor:[UIColor greenColor]];
[self RightAnswer];
}
else{
[Answer1 setBackgroundColor:[UIColor redColor]];
[Answer1 setTitle:@"Incorrect" forState:UIControlStateNormal];
[Answer2 setBackgroundColor:[UIColor colorWithRed:102.0/255.0 green:102.0/255.0 blue:102.0/255.0 alpha:1.0f]];
[Answer3 setBackgroundColor:[UIColor colorWithRed:102.0/255.0 green:102.0/255.0 blue:102.0/255.0 alpha:1.0f]];
[Answer4 setBackgroundColor:[UIColor colorWithRed:102.0/255.0 green:102.0/255.0 blue:102.0/255.0 alpha:1.0f]];
[self WrongAnswer];
}
}
最佳答案
最好的方法是继承UIButton
。创建类 QuizQuestionButton
这个类将有方法
-setCorrectAnswer:(NSString *)correctAnswer
和 -setRealAnswer:(NSString *)realAnswer
如果两者相同 - 将背景颜色设置为绿色,否则设置为红色。
-(void)setCorrectAnswer:(NSString *)correctAnswer {
_correctAnswer = correctAnswer;
}
-(void)setRealAnswer:(NSString *)realAnswer {
if (realAnswer == _correctAnswer) {
self.backgroundColor = [UIColor greenColor];
} else {
self.backgroundColor = [UIColor redColor];
}
}
另请阅读设计模式 - 策略。此模式可以帮助您避免 if-else 语句。
关于ios - 在 IBAction 中按下时为 UIButtons 显示不同的颜色以进行测验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29008647/