テキスト付きのカスタムUIButtonが3つあり、ユーザーがボタンの1つをクリックすると、答えが正しいかどうかを確認します。それが正しい場合は、ボタンの背景を緑に設定し、赤でない場合は設定します。次に、少し遅れて次の質問を自動的に表示したいと思います(前の回答が正しいかどうかを確認するのに少し時間が必要です)。
問題は、UIbutton の背景が IBAction 内では変更されず、setWordAndAnswers 関数内で変更されることです。そして、なぜそれが起こるのか私にはわかりません(((
コードは次のとおりです。
-(void)setWordAndAnswers{
if([[currentCollection allWards] count]>0){
int randCard =arc4random_uniform([[currentCollection allWards] count]-1);
currentWord=[[currentCollection allWards]objectAtIndex:randCard];
tvMainWord.text=[currentWord originalWord];
int wrightAnser =arc4random_uniform(2);
for(int i=0;i[answers count];i++){
[[answers objectAtIndex:i]setBackgroundColor:[UIColor whiteColor]];
if(i==wrightAnser){
[[answers objectAtIndex:i]
setTitle:[currentWord wordTranslate] forState:UIControlStateNormal];
}
else{
[[answers objectAtIndex:i]
setTitle:[self getRandomAnswer] forState:UIControlStateNormal];
}
}
}
}
- (IBAction)onClickCheckAnswer:(id)sender {
if(!isGameRunning)
return;
UIButton *button = (UIButton *)sender;
if([[sender title]isEqual:[currentWord wordTranslate]]){
[button setBackgroundColor:[UIColor greenColor]];
}
else{
[button setBackgroundColor:[UIColor redColor]];
}
[button setNeedsDisplay];
[NSThread sleepForTimeInterval:0.3f];
[self setWordAndAnswers];
}