0
-(IBAction)choiceOne:(id)sender{

    if ([Choice2 isSelected]) {
        [Choice2 performSelector:@selector(finishHighlight:) withObject:sender afterDelay:0];
        score = score -4;
        score = score+8;
        NSLog(@"Score updated %i touched from choice 1 ",score);
        [self performSelector:@selector(doHighlight:) withObject:sender afterDelay:0];

        checker =1 ;

    }else if ([Choice3 isSelected]) {
          [Choice3 performSelector:@selector(finishHighlight:) withObject:sender afterDelay:0];
        score = score -2;
        score = score+8;
        NSLog(@"Score updated %i touched from choice 1 ",score);
        [self performSelector:@selector(doHighlight:) withObject:sender afterDelay:0];

        checker =1 ;
    }
    else {
        score = score+8;
        NSLog(@"Score updated %i touched from choice 1 ",score);
        [self performSelector:@selector(doHighlight:) withObject:sender afterDelay:0];

        checker =1 ;
    }


}

メニューから他のボタンが押された場合、選択したボタンからハイライトを終了する必要があります

- (void)doHighlight:(UIButton*)b {
    [b setHighlighted:YES];
}    
-(void)finishHighlight:(UIButton*)a{

    [a setHighlighted:NO];

}

これらは私が上記で使用している関数です...そして

4

2 に答える 2

1

両方のボタンが「IBOutlets」に接続されていれば、これは非常に簡単です。彼らは?たとえば、次のようになります。

IBOutlet UIButton * mode1;
IBOutlet UIButton * mode2;

この特定のパラメータaとbは無視されます。

-(IBAction) button1Pressed:(id)sender {

    [self performSelector:@selector(highlightButton1:) withObject:sender afterDelay:0.0];
}

- (void)highlightButton1:(UIButton *)a { 
        [mode1 setHighlighted:YES];
    [mode2 setHighlited:NO];
}
-(IBAction) button2Pressed:(id)sender {

    [self performSelector:@selector(highlightButton2:) withObject:sender afterDelay:0.0];
}

- (void)highlightButton2:(UIButton *)b { 
    [mode1 setHighlighted:NO];
    [mode2 setHighlited:YES];
}
于 2012-07-09T11:36:22.063 に答える
0

はい..単に反復を使用してボタンを取得し、それらを通常として設定するか、前に選択したボタンを格納するインスタンス変数を作成できます。したがって、このボタンの状態を変更するだけです。したがって、どちらの方法がより適しているかはあなた次第です。

于 2012-07-09T11:31:28.913 に答える