私は多くのuibuttonを使用して一種のチェックシートを作成しており、コード(IBではない)を使用して追加しています。特定のボタンを選択すると、他のボタンは選択できないようにしたいと思います。たとえば、LOW、MEDIUM、HIGHのボタンが1列あります。ユーザーが2つのオプションを選択できるようにしたくありません(選択を変更したい場合は、一度に2つではありません)。
私は自分のメソッドの一般的な構造を知っています、そしてこれが私がこれまでに持っているものです:
-(void)addButtons
ここで、ビューにボタンを入力します(ここには、ボタンを1つだけ表示しますが、多数あります)。
-(void)addButtons{
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(clicked:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"" forState:UIControlStateNormal];
button.frame = CGRectMake(209, 54, 127, 18);
button.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[imageView addSubview:button];
}
-(void)clicked:(UIButton *)sender
これは、ボタンがクリックされたときに呼び出されるメソッドです。自分自身をパラメータとして送信してほしい。ボタンの外観が変わり、クリックされたことを示します。透明にする理由は、画像の上にボタンがあり、その下にあるものを確認する必要があるためです。sender.backgroundColor = [UIColor redColor];
また、私が望むように機能するとは思いませんが、それは重要ではありません。
-(void)clicked:(UIButton *)sender{
sender.alpha = 0.5;
sender.backgroundColor = [UIColor redColor];
[self setRelatedButtons:sender];
}
-(void)setRelatedButtons'
そしてこれは、「セット」ごとに1つのボタンのみが選択されるようにする方法です。
-(void)setRelatedButtons:(UIButton *)sender{
//since I know this button is clicked
//set related buttons to unclicked
}
すべてを要約すると、これが私が疑問に思っていることです:
1)ボタンの外観を選択したままに設定するにはどうすればよいですか?
2)現在のボタンを識別するために自分clicked
とメソッドに何を渡す必要がありますか?setRelatedButtons
今、私はボタン自体を持っていますが、もっと良いものはありますか?
3)特定のボタンを関連付けるための最良の方法は何ですか?ボタンのセットごとに配列を使用することもできますが、もっと良い方法があることを願っています。私は潜在的に使用できtypedef
ますか?(以前にそれらの1つを使用したことはありません)