2

カスタム チェックマーク ボタンを実装する方法は、配列の数に依存し、これらのボタンで複数選択できるようにする必要があります。現在、私はこのように使用されていますが、

int YAxis = 300;
for (int x=0; x< [myResultArray count];x++) 
{
    checkmarkButton = [UIButton buttonWithType:UIButtonTypeCustom];
    checkmarkButton.frame = CGRectMake(100, YAxis, 20, 20);
    checkmarkButton.tag = selectedServiceTag;
    [self.view addSubview:checkmarkButton];YAxis = YAxis+30;
}

チェックマークの設定画像:

    [checkmarkButton setBackgroundImage:[UIImage imageNamed:@"checkBox_none"] forState:UIControlStateNormal];
    [checkmarkButton addTarget:self action:@selector(serviceSelected:) forControlEvents:UIControlEventTouchUpInside];

次に、アクションメソッドを実装しました。

     -(void)serviceSelected
     {
         checkmarkButton.selected = !checkmarkButton.selected;
         if (checkmarkButton.selected)
         {
             [checkmarkButton setBackgroundImage:[UIImage imageNamed:@"checkBox"] forState:UIControlStateNormal];
         }
         else
         {
             [checkmarkButton setBackgroundImage:[UIImage imageNamed:@"checkBox_none"] forState:UIControlStateNormal];
         }
     }

ただし、選択時は最後のインデックスボタンのみが選択されます。

4

1 に答える 1

0

このコードを試してください:

画像の拡張子 png または jpg を確認してください

 -(IBAction)serviceSelected:(id)sender
    {
     UIButton *tmpYes = (UIButton *)sender;

        if (tmpYes.currentBackgroundImage==[UIImage imageNamed:@"checkBox.png"]) {

          [tmpYes setBackgroundImage:[UIImage imageNamed:@"checkBox_none.png"] forState:UIControlStateNormal];

        }
        else
        {
           [tmpYes setBackgroundImage:[UIImage imageNamed:@"checkBox_none.png"] forState:UIControlStateNormal];



        }
    }
于 2013-08-10T13:01:49.943 に答える