2011-11-03 32 views
0

使用兩個UIButton分段控件,並將每個按鈕的動作設置爲action:@selector(segmentedControl:)作爲分段控件的UIButtons

- (IBAction)segmentedControl:(id)sender { 

     BOOL activateSecond = _firstTab.selected; 
     _firstTab.selected = !activateSecond; 
     _secondTab.selected = activateSecond; 
} 

這仍然是如何解決的,如果我攻上激活鍵的問題(即現在的工作狀態跳轉到另一種)。

回答

2

我認爲你可以使用標籤屬性。

將每個按鈕的標籤設置爲一個數字。

然後,當你收到你的segmentedControl方法發送到UIButton並檢查它的標記值。

- (IBAction)segmentedControl:(id)sender { 

    int buttonTag = ((UIButton*)sender).tag; 

    if(_firstTab.selected && buttonTag != 1){ 
     _firstTab.selected = NO; 
     _secondTab.selected = YES; 
    }else if(_secondTab.selected && buttonTag != 2){ 
     _firstTab.selected = YES; 
     _secondTab.selected = NO; 
    } 
} 
+0

最後一個問題...我有兩個狀態'forState:UIControlStateSelected'和'forState:UIControlStateNormal'的兩個背景圖像。我如何刪除正常的一個。如果我按住活動圖像背景消失,直到我釋放它... –

+0

設置以下:'[_firstTab setBackgroundImage:[UIImage imageNamed:@「state_normal.png」] forState:UIControlStateNormal]; [_firstTab setBackgroundImage:[UIImage imageNamed:@「state_on.png」] forState:UIControlStateSelected]; [_firstTab setBackgroundImage:[UIImage imageNamed:@「state_on.png」] forState:UIControlStateHighlighted]; [_iFirstTab setBackgroundImage:[UIImage imageNamed:@「state_on.png」] forState:UIControlStateDisabled];' – Cyprian

2

跟蹤哪個按鈕被先前選擇,然後當通過按下一個新的按鈕,你可以捕捉:

- (IBAction)segmentedControl:(id)sender { 
    UISegmentedControl * myControl = (UISegmentedControl *) sender; 

    if(myControl.selectedSegmentIndex != previouslySelectedIndex) 
    { 
     // here the user has selected a new button, which becomes the active one 
     previouslySelectedIndex = myControl.selectedSegmentIndex; 
    } else { 
     // the user tapped on the active, previously selected button 
    } 
} 

當然,你需要初始化previouslySelectedIndex開始用。

讓我知道這個想法是否可以幫助你。

+0

[喜歡他的示例](http://stackoverflow.com/questions/3300534/toggle-uibutton-state-when-pressing-like-a-switch),但我有兩個UIButtons不是'UISegmentedControl' –

+0

啊,你的問題可能會更清楚些(我被「分段控制」這個詞所困惑)。解決方案仍然會涉及sam概念 - 您仍然可以跟蹤兩個單獨按鈕的活動按鈕狀態。 –

+0

無論如何謝謝你! –