私のクイズアプリでは、アクティブなイメージと非アクティブなイメージを設定して、4 つの回答に対して 4 つのカスタム ラジオ ボタンを作成しています。ボタンを選択すると状態がアクティブに変わりますが、前のボタンを押すと状態が非アクティブになります。
カスタム ボタンを作成するためのコード
//answer 1 targetLabel = [[UILabel alloc] init]; CGSize labelSize = CGSizeMake(240, 9999); CGSize theStringSize = [ans1 sizeWithFont:targetLabel.font constrainedToSize:labelSize lineBreakMode:targetLabel.lineBreakMode]; targetLabel.frame = CGRectMake(targetLabel0.frame.origin.x+40, targetLabel0.frame.size.height+40, theStringSize.width, theStringSize.height); targetLabel.text = ans1; [targetLabel setNumberOfLines:0]; targetLabel.backgroundColor=[UIColor clearColor]; [targetLabel sizeToFit]; [scroll addSubview:targetLabel]; // button 1 ans1btn = [[UIButton alloc] initWithFrame:CGRectMake(15,targetLabel.frame.origin.y-5,30,30)]; ans1btn.backgroundColor=[UIColor redColor]; [ans1btn setSelected:NO]; [ans1btn setBackgroundImage:[UIImage imageNamed:@"gray.png"] forState:UIControlStateNormal]; [ans1btn setBackgroundImage:[UIImage imageNamed:@"green.png"] forState:UIControlStateSelected]; ans1btn.adjustsImageWhenHighlighted=YES; [ans1btn addTarget:self action:@selector(checkboxSelected:) forControlEvents:UIControlEventTouchUpInside]; ans1btn.tag=1; [scroll addSubview:ans1btn];
呼び出し方法
-(void)checkboxSelected:(id)sender
{
checkBoxSelected = TRUE;
[ans1btn setSelected:checkBoxSelected];
if(checkBoxSelected==TRUE)
{
checkBoxSelected1=FALSE;
[ans1btn1 setSelected:checkBoxSelected1];
[ans1btn2 setSelected:checkBoxSelected1];
[ans1btn3 setSelected:checkBoxSelected1];
checkBoxSelected=TRUE;
targetLabel.textColor=[UIColor blackColor];
targetLabel1.textColor=[UIColor grayColor];
targetLabel2.textColor=[UIColor grayColor];
targetLabel3.textColor=[UIColor grayColor];
}
else
{
NSLog(@"the button is not selected");
}
}
そのように、他のボタンアクションも呼び出しています
誰でも私を助けてください。
前もって感謝します。