2011-05-22 43 views
0

對於iPhone,我還沒有找到像單選按鈕觸發組中的其他按鈕的任何東西。那麼每個人都會建議使用什麼? UISwitch我猜,當選擇其他選項時,會做一些事情來觸發組中的其他人?iphone什麼使用,因爲沒有「單選按鈕」

如果我有幾個UISwitch對象,我會如何觸發其他人與我切換的相反?

+0

應用等的設置應用使用一個表視圖來表示單選按鈕組。我製作了一個自定義表格視圖控制器,它模仿了Settings應用程序的功能(包括取消選擇其他單元格的邏輯),但還沒有開始釋放它的源代碼... – BoltClock 2011-05-22 21:52:27

回答

3

我還使用了一個自定義的UISegmentedControl。事情是這樣的:

NSMutableArray* buttons; 

- (void)touchDownAction:(UIButton*)button { 
    [self dimAllButtonsExcept:button]; 
    if ([delegate respondsToSelector:@selector(touchDownAtSegmentIndex:)]) 
     [delegate touchDownAtSegmentIndex:[buttons indexOfObject:button]]; 
} 

-(void) dimAllButtonsExcept:(UIButton*)selectedButton { 
    for (UIButton* button in buttons) { 
     if (button == selectedButton) { 
      button.selected = YES; 
      button.highlighted = YES; 
     } else { 
      button.selected = NO; 
      button.highlighted = NO; 
     } 
    } 
} 

完整的代碼是在https://github.com/j4n0/jobsket/tree/master/sources/main/ui/custom/segControl

+0

我不知道一個人是否知道一切編程語言和開發環境?!就在這個時候,我想我發現一切都會重新出現......謝謝! – 2011-05-22 22:32:47

2

我已經使用UISegmentedControl作爲單選按鈕。

4

我使用的按鈕與像單選按鈕圖像。即關閉圖像和開啓圖像。這種方法的好處是實現起來非常簡單,您可以使用圖像來控制按鈕控件的狀態。它作爲一個簡單的切換,並不需要花哨的按鈕狀態。在按鈕打開或關閉時,您可以輕鬆地將代碼添加到執行某些操作的方法中,在示例中,我只是調用正在編寫某些用戶默認設置的方法。

它應該很容易適應創建單選按鈕功能。

-(IBAction)tickboxControl:(id)sender{ 
     NSLog(@"%s",__FUNCTION__); 
     bgImageOn = [UIImage imageNamed:@"tickedBox.png"]; 
     bgImageOff = [UIImage imageNamed:@"tickBoxEmpty.png"]; 
     UIButton *buttonClicked = (UIButton *)sender; 
    UIImage *imageOfClicked = [buttonClicked imageForState:UIControlStateNormal]; 
     if (imageOfClicked == bgImageOff) { 
      [self setButtonFlags: [NSNumber numberWithInt:[sender tag]] : [NSNumber numberWithInt:1] ]; 
      [buttonClicked setImage:bgImageOn forState:UIControlStateNormal]; 
     } else{ 
      [self setButtonFlags: [NSNumber numberWithInt:[sender tag]] : [NSNumber numberWithInt:0] ]; 
      [buttonClicked setImage:bgImageOff forState:UIControlStateNormal]; 
     }  
} 
+0

對不起,我仍然試圖把握這一切。雖然我可以看到這是如何工作的,但我真的不知道如何將其插入到我的代碼中。我可以在IB使用這個嗎?不知道爲什麼iPhone SDK沒有單選按鈕?! – 2011-05-22 23:07:52

4

我創建了一個項目,顯示如何實現你要做的事情。 您可以將複選框中的圖形(我發現在設備上可以更好地查看和理解)更改爲單選按鈕。

閱讀調試日誌以瞭解邏輯。

如果您有任何問題,請給我留言。

Radio Buttons Example Project (XCode4)

[這是在回答下面您的意見]

2

試試這個在iOS的一個單選按鈕:在.m文件

@interface RadioButtonViewController : UIViewController 

{ 
    //for radio button 
    IBOutlet UIButton *radioButton1; 
    IBOutlet UIButton *radioButton2; 
    IBOutlet UITextField *selectedValue; 
    IBOutlet UILabel *label1; 
    IBOutlet UILabel *label2; 
    } 

@property (nonatomic,retain) IBOutlet UIButton *radioButton1; 
@property (nonatomic,retain) IBOutlet UIButton *radioButton2; 
@property (nonatomic,retain) IBOutlet UITextField *selectedValue; 
-(IBAction)userChangedButtonClicked:(id)sender 
@end 

編寫代碼,並指定默認值,在故事板檢查器窗口中選擇圖像,併爲每個按鈕賦予標籤值。

RadioButtonViewController.m

-(IBAction)userChangedButtonClicked:(id)sender 
{ 
    UIButton *senderBtn = (UIButton*)sender; 
    if (senderBtn.tag == 101 && !self.radioButton1.selected) 
    { 
     self.radioButton1.selected = TRUE; 
     self.radioButton2.selected = FALSE; 
     selectedValue.text = label1.text; 
    }else if (senderBtn.tag == 102 && !self.radioButton2.selected) 
    { 
     self.radioButton1.selected = FALSE; 
     self.radioButton2.selected = TRUE; 
     selectedValue.text = label2.text; 
    } 
} 
相關問題