0

2 つのチェック ボックス (カスタマイズされたボタン) を制御する次のコードがあります。

- (IBAction) setCheckBox: (id) sender{

    UIImage *selected = [UIImage imageNamed:@"checkbox_checked.png"];
    UIImage *notSelected = [UIImage imageNamed:@"checkbox_unchecked.png"];

    if ([sender isSelected]) 
    {  
        [sender setImage:notSelected forState:UIControlStateNormal];  
        [sender setSelected:NO];  
        if ([sender tag] == 10) boolOne = FALSE;
        if ([sender tag] == 11) boolTwo = FALSE;
    }
    else 
    {     
        [sender setImage:selected forState:UIControlStateSelected]; 
        [sender setSelected:YES];
        if ([sender tag] == 10) boolOne = TRUE;
        if ([sender tag] == 11) boolTwo = TRUE;
    }
}

このコードが 2 つのチェックボックスを制御していることがわかります。1 つを押すとチェックが入り、別の時間を押すとチェックが外れます。

このコードを次のように変更します。デフォルトでは、タグ 10 のチェックボックスがオンになっていて、それを押しても効果はありませんが、タグ 11 のチェックボックスを押すと、チェックボックスがオンになり、チェックボックス 10 がオフになります。チェックボックスは、選択とブール値を切り替える必要があります

4

2 に答える 2

1
if([sender isSelected])
 return;
if([sender tag] == 11){
  [sender setSelected:YES];
 [checkbox10 setSelected:NO];
}
if ([sender tag] == 10) {
 [sender setSelected:YES];
 [checkbox11 setSelected:NO];
}

チェックボックスがuibuttonのインスタンスであると仮定するように、タグ値でチェックボックスを取得できます

UIButton *checkBox10 = (UIButton*)[self.view viewWithTag:10]; 

お分かりできると良いのですが。また、コードに従って画像を設定します。

于 2011-07-14T10:45:35.343 に答える
0

ラジオ ボタンの動作が必要な場合は、チェック ボックスの代わりにラジオ ボタンを使用する必要があります。

チェックボックスを and という名前のインスタンス変数として保存すると仮定するcheckbox10checkbox11、これで問題が解決するはずです。

- (IBAction) setCheckBox: (id) sender{

    UIImage *selected = [UIImage imageNamed:@"checkbox_checked.png"];
    UIImage *notSelected = [UIImage imageNamed:@"checkbox_unchecked.png"];

    if (![sender isSelected]) 
    {  
        [sender setImage:notSelected forState:UIControlStateNormal];  
        [sender setSelected:YES];
        if ([sender tag] == 10)
        {
            boolOne = YES;
            boolTwo = NO;
            [checkbox11 setImage:notSelected forState:UIControlStateNormal];  
            [checkbox11 setSelected:NO];
        }
        if ([sender tag] == 11)
        {
            boolTwo = YES;
            boolOne = NO;
            [checkbox10 setImage:notSelected forState:UIControlStateNormal];  
            [checkbox10 setSelected:NO];
        }
    }
}
于 2011-07-14T10:52:03.973 に答える