IPhoneアプリにラジオボタンオプションを実装する方法の例はありますか。
簡単な選択機能には、ピッカービューが非常に大きいと思います。
Apple意図的にラジオボタンを除外したかどうか、および使いやすさ/ユーザーエクスペリエンスの観点からピッカービューを単に使用するほうが良いかどうかはわかりません。
最適なラジオボタンの実装がどのように見えるかについて、いくつかの考えがあります。 UIButton
クラスに基づいて、「選択済み」状態を使用してグループからの1つを示すことができます。 UIButton
にはIBのネイティブカスタマイズオプションがあるため、XIBを設計するのに便利です。また、IBコンセント接続を使用してボタンをグループ化する簡単な方法が必要です。
これを RadioButton クラスに実装しました。チャームのように機能します:
ISegmentedControl を試してください。ラジオボタンと同様に動作し、選択肢の配列を提示し、ユーザーが1を選択できるようにします。
まとめると、4つの方法があります。
または、チェックマークの付いた新しいテーブルビューコントロールを開きます。
お役に立てれば。
オプション画面では、特に複数のラジオグループがある場合、グループ化されたテーブルビューを使用します。各グループは無線グループであり、各セルはグループ内の選択肢です。セルのアクセサリビューを使用して、必要なオプションを示すチェックマークを表示するのは簡単です。
UIPickerViewのみを少し小さくしたり、2つのページを2つ並べるのにグラデーションが少し適している場合は...
DLRadioButton を試してください。Swift
とObjC
の両方で機能します。画像を使用して、選択状態を示したり、独自のスタイルをカスタマイズしたりすることもできます。
GitHub で確認してください。
**更新:選択インジケータを右側に配置するオプションが追加されました。
**更新:正方形ボタンIBDesignable
が追加され、パフォーマンスが向上しました。
**更新:複数選択のサポートが追加されました。
私はこれに答えるのが非常に遅いことを知っていますが、これが誰にも役立つことを願っています。
IBOutletCollection
を使用してラジオボタンのようなボタンを作成できます。 .hファイルにIBOutletCollectionプロパティを1つ作成します。
@property (nonatomic, strong) IBOutletCollection(UIButton) NSArray *ButtonArray;
すべてのボタンをこのIBOutletCollectionに接続し、3つのボタンすべてに対して1つのIBActionメソッドを作成します。
- (IBAction)btnTapped:(id)sender {
for ( int i=0; i < [self.ButtonArray count]; i++) {
[[self.ButtonArray objectAtIndex:i] setImage:[UIImage
imageNamed:@"radio-off.png"]
forState:UIControlStateNormal];
}
[sender setImage:[UIImage imageNamed:@"radio-on.png"]
forState:UIControlStateNormal];
}
ラジオボタンの配列の背後にあるロジックを処理するためのコントローラーを作成しました。オープンソースであり、GitHubでチェックしてください!
-(void)radiobutton:(id)sender
{
ischecked =!ischecked;
UIButton *check = (UIButton*)sender;
if(ischecked == NO)
[check setImage:[UIImage imageNamed:@"checkbox1.png"] forState:UIControlStateNormal];
else
[check setImage:[UIImage imageNamed:@"checkbox-pressed.png"] forState:UIControlStateNormal];
}
IOSアプリでラジオボタンを作成する次の簡単な方法は、2つの手順に従います。
ステップ1-viewDidLoadまたは他の目的のメソッドにこのコードを配置します
[_mrRadio setSelected:YES];
[_mrRadio setTag:1];
[_msRadio setTag:1];
[_mrRadio setBackgroundImage:[UIImage imageNamed:@"radiodselect_white.png"] forState:UIControlStateNormal];
[_mrRadio setBackgroundImage:[UIImage imageNamed:@"radioselect_white.png"] forState:UIControlStateSelected];
[_mrRadio addTarget:self action:@selector(radioButtonSelected:) forControlEvents:UIControlEventTouchUpInside];
[_msRadio setBackgroundImage:[UIImage imageNamed:@"radiodselect_white.png"] forState:UIControlStateNormal];
[_msRadio setBackgroundImage:[UIImage imageNamed:@"radioselect_white.png"] forState:UIControlStateSelected];
[_msRadio addTarget:self action:@selector(radioButtonSelected:) forControlEvents:UIControlEventTouchUpInside];
ステップ2-次のIBActionメソッドをクラスに入れます
-(void)radioButtonSelected:(id)sender
{
switch ([sender tag ]) {
case 1:
if ([_mrRadio isSelected]==YES) {
// [_mrRadio setSelected:NO];
// [_msRadio setSelected:YES];
genderType = @"1";
}
else
{
[_mrRadio setSelected:YES];
[_msRadio setSelected:NO];
genderType = @"1";
}
break;
case 2:
if ([_msRadio isSelected]==YES) {
// [_msRadio setSelected:NO];
// [_mrRadio setSelected:YES];
genderType = @"2";
}
else
{
[_msRadio setSelected:YES];
[_mrRadio setSelected:NO];
genderType = @"2";
}
break;
default:
break;
}
}