2009-03-19 16 views
13

iPhoneアプリケーションにラジオボタンを追加する必要があります。そのためには、丸い形状のラジオボタン画像があります。その画像をサブビューとして追加できますか? UIImageにtouchupinsideイベントを追加できますか?iPhoneアプリのラジオボタン

+0

私はあなたが言ったことを試しました、それはうまく動作します。最初ボタンは丸いボタンのように見えますが、ボタンがクリックされるとボタンのフレームが現れます(正方形のボタンのように見えます) – saikamesh

答えて

19

iPhoneアプリにはラジオボタンがありません。これを行うための "iPhoneのような"方法は、ピッカービューを使用するか、選択した行にチェックアクセサリを含むグループ化されたテーブルビューで複数の行を持つことです。

何らかの理由で本当にラジオボタンが必要な場合は、カスタムのボタンタイプのUIButtonを使用してください。空の円を「通常の」制御状態の画像として、塗りつぶされた円を「選択された」状態の画像として設定します。

+0

私はあなたが言ったことを試して、それはうまく動作します。最初はボタンが丸いボタンのように見えますが、ボタンをクリックするとボタンのフレームが現れます(正方形のボタンのように見えます) – saikamesh

+0

どうすればこの問題を取り除くことができますか? – saikamesh

+0

これが実行不可能な場合、私は別のものを試しなければなりません。だから、この動作を取り除くことが可能かどうか教えてください。 – saikamesh

0

UIViewコンテナ内でUIImageをラップするだけのUIImageViewクラスを試すことができます。私が思うにふさわしいtouchesBegan/Canceledイベントをサポートしています。

あなたが説明したように真のラジオボタンの設定ではなく、代わりにあなたのラジオの選択に対応するセルを持つUITableViewを使用し、チェックされた/タッチでチェックを外す。例については、Apple iPhone開発サイトのTouchCellの例を参照してください。

+0

ラジオボタンクラスでUIButtonクラスを拡張してラジオボタンクラスを作成しました。 buttontypeをUIButtonTypeCustom?に設定しました。 – saikamesh

+0

デフォルトはボタンタイプです。 –

+0

こんにちはドリュー、最後に私はあなたの提案をしました。私はUIImageViewクラスとtouchesBeganイベントを使用しました。問題なく正常に動作します。どうもありがとう。私にアイデアを与えてくれたBrentにも感謝します。 – saikamesh

1

UIWebViewを作成し、ラジオボタンを使用するHTMLをロードして、UIWebViewデリゲートメソッドを使用してラジオ値を監視することもできます。

これはちょっとしたハックですが、場合によってはそれが求められているものです。

0

「はい」または「いいえ」オプションしかない場合は、UISwitchを使用します。あなたがボタンを作成するときに

-(void)buttonPressed:(id)sender{ 

if([sender isSelectd]) 

//here change button image and set 

[sender setSelected:NO]; 

}else{ 
//here change button image and set 

[sender setSelected:YES]; 

} 

がNOにするsetSelected設定することを忘れないでください、覚えている:複数のタイプの場合

は、以下のコードを使用します。

5

お試しUISegmentedControlです。ラジオボタンと同様に動作します。選択肢の配列を表示し、ユーザーが1を選択できるようにします。

+0

TitaniumでUISegmentedControlを作成する方法を知っていますか? –

2
IBOutlet UIButton *checkboxButtonMale; 

IBOutlet UIButton *checkboxButtonFmale; 

    checkboxButtonFmale.tag = 3; 
    checkboxButtonMale.tag = 2; 

(IBAction)checkboxGenderChecked:(id)sender{ 


    UIButton *selectedButton = (UIButton *)sender; 
    UIButton *toggledButton; 

    if (selectedButton.tag == 2) { 
     toggledButton = checkboxButtonFmale; 
    } 
    else {  
     toggledButton = checkboxButtonMale; 
    } [toggledButton setSelected:NO]; 
    [sender setSelected:YES]; 
     } 
0

コーディングお楽しみください私はこのような何かをしたし、それが動作します:

- (IBAction)tickbuttonClicked:(id)sender 
{ 

UIButton *selectedButton = sender; 
UIImage *ticked = [UIImage imageNamed:@"tickbox_yes3.png"]; 
UIImage *unticked = [UIImage imageNamed:@"tickbox_no3.png"];  

    //untick active box 
    if((activetag>-1)&&(activetag!=[sender tag])){ 
     UIButton *thisButton = (UIButton *)[self.view viewWithTag:activetag]; 
     thisButton.backgroundColor = [UIColor colorWithPatternImage:unticked]; 
    } 

//tick sender 
if ([sender tag]!=activetag) 
{ 
    selectedButton.backgroundColor = [UIColor colorWithPatternImage:ticked]; 
    activetag=[sender tag]; 
    [selectedButton setSelected:YES]; 

} 

} 
1

あなたはUIButtonの配列を使用することができます私のGSRadioButtonSetControllerクラスを使用してロジックを処理します(本質的に、ボタンを1つだけ選択できることを保証します)。サンプルの使い方については、GitHubのREADMEを参照してください。

0

//ボタンのプロパティを定義

- (void)viewDidLoad 
    { 
     [ButtonChaked setBackgroundImage:[UIImage imageNamed:@"UnChacked.png"] forState:UIControlStateNormal]; 
    } 

Chakedイメージ Unchaked画像を宣言します。本当に

0

を使用しています

- (IBAction)ButtonChaked:(id)sender 
{ 
    if (ButtonChaked.selected ==YES) 
    { 
     [ButtonChaked setBackgroundImage:[UIImage imageNamed:@"UnChacked.png"] forState:UIControlStateSelected]; 

    ButtonChaked.selected =NO; 

} 
else 
{ 
    [ButtonChaked setBackgroundImage:[UIImage imageNamed:@"Chaked.png"] forState:UIControlStateNormal]; 
    ButtonChaked.selected = YES; 

} 


} 

私はちょうどCocoapods pod "DLRadioButton"にiOSのラジオボタンコントロールを公開し、ドキュメントと例については、GitHubをご覧ください。このコントロールのスクリーンショットが添付されています。 enter image description here