2011-01-31 36 views
41

我想問一下如何在iPhone應用上實現射頻按鈕選項。IOS的​​最佳射頻按鈕實現

我覺得選擇器視圖相當大的一個簡單的選擇功能。

我不知道,如果蘋果排除故意的單選按鈕,以及是否如最好是簡單地使用從可用性/用戶體驗點 - 視圖選擇器視圖。

+6

我認爲這是故意大。例如,iPhone上的Safari使用選擇器視圖來選擇選擇框。我建議你在你正在開發的設備上遵循什麼標準(在這種情況下是選擇器視圖),而不是你目前使用的其他機器上習慣的(單選按鈕)。 – Yuji 2011-01-31 03:17:33

+0

看看這個偉大的教程[iPhone UIButton教程:單選按鈕](http://www.mobisoftinfotech.com/blog/iphone/iphone-uibutton-tutorial-radio-buttons/)。 – WrightsCS 2011-01-31 03:12:52

回答

6

對於選項的屏幕,尤其是在存在多個無線電基,我喜歡用分組的表圖。每個小組都是一個廣播組,每個小組都是小組內的一個選擇。使用單元格的輔助視圖顯示指定您想要的選項的複選標記是微不足道的。

如果只是UIPickerView可以作出一點點小的或他們的梯度是有點更適合平鋪兩頁......

+1

任何示例都與選項有關的這個分組tableview? – Praveenkumar 2013-07-22 10:53:51

+0

你能鏈接任何如何使用它的例子嗎? – user2533527 2013-12-01 00:52:15

24

嘗試UISegmentedControl。它的行爲類似於單選按鈕 - 顯示的選擇的陣列,並允許用戶挑選1.

+6

希望Apple的文檔包含圖像。 *嘆息* – devios1 2013-08-01 18:54:02

+1

很好的水平呈現,但垂直呢?在我的情況下,我希望單選按鈕的表格單元格包含每個組件單選按鈕。 – 2015-10-05 00:18:56

5

我寫控制器,用於處理無線按鈕陣列背後的邏輯。它是開源的,在GitHub上,查看它!

https://github.com/goosoftware/GSRadioButtonSetController

+0

嗨西蒙!我試圖使用GSRadioButtonSetController,它工作得很好。謝謝。但如何取消選擇按鈕?我試過'myButton.selected = YES;'但是當嘗試再次選擇按鈕時,它不會被選中。任何想法? – Frade 2013-03-22 12:58:17

17

只是想總結一下,可能有4種方式。

  • 如果你沒有太多的空間,增加一個點擊事件文本或按鈕,然後顯示UIPickerView:

UIPickerView

或打開帶有複選標記的新表視圖控件:

UITableView

  • 我F時,更多的空間,直接添加表格視圖到主視圖:

enter image description here

  • 最終的解決方案是使用UISegmentedControl:

enter image description here

希望這有助於。

41

我有最好的單選按鈕實現應該什麼樣子的一些想法。它可以基於UIButton類,並使用它的'selected'狀態來指示組中的一個。 UIButton在IB中具有本地定製選項,因此設計XIB很方便。 還應該有使用IB出口連接一個簡單的方法來組按鈕:我在這RadioButton類中實現自己的想法

。工程就像一個魅力:

Download the sample project

7

嘗試DLRadioButton,適用於SwiftObjC。您還可以使用圖像來指示選擇狀態或自定義您自己的樣式。

看看GitHub

radio button for iOS

**更新:增加了將選擇指示符右側的選項。

**更新:增加了方形按鈕,IBDesignable,提高性能。

**更新:增加了多項選擇支持。

0
-(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]; 
} 
0

以下在iOS應用程序中創建單選按鈕的簡單方法遵循兩個步驟。

Step1-將這個代碼在您的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]; 

Step2-將以下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; 
    } 
} 
5

我知道它很遲迴答這個問題,但希望這可以幫助任何人。

您可以使用IBOutletCollection創建按鈕,例如單選按鈕。在我們的.h文件中創建一個IBOutletCollection屬性。

@property (nonatomic, strong) IBOutletCollection(UIButton) NSArray *ButtonArray; 

連接所有按鈕與此IBOutletCollection併爲所有三個按鈕做一個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]; 

    } 
} 
相關問題