2014-03-27 32 views
0

我想完成一些事情,甚至很難向我解釋,但我會盡力去做。兩個國家 - >兩個動作 - >一個UIButton for iOS 7

我有一個UIButton按鈕1),並希望它做兩個不同的操作取決於背景此特定按鈕的狀態,但背景狀態被另一個控制UIButtonButton 2)。

我希望這個形象能解釋一下我在尋找:

enter image description here

現在...我不是在尋找確切的代碼我需要實現,但是一個想法如何做到這一點,也許一些關於一些方法或類的暗示使用。

注意:我已經考慮更改UIButton標記來控制操作,但我無法更改標記,因爲我需要它來控制操作的行爲。另外,(Button1)必須在使用第二個動作後恢復到原始狀態。

+0

如果你不能使用標籤,我會建議繼承UIButton並簡單地存儲狀態 – Jack

+0

爲什麼你不能將按鈕連接到相同的方法,並根據狀態做不同的事情呢? – SVD

+0

@SVD你的意思是說,在執行動作或類似的事情之前,檢查按鈕是否具有某種背景顏色? –

回答

3

從你所描述的東西,我建議你應該有兩個IBActions和設置的UIButton 1的財產你的.h頭文件看起來像 -

-(IBAction)button1Pressed:(id)sender; 

-(IBAction)button2Pressed:(id)sender; 

@property (strong, nonatomic) IBOutlet UIButton* button1; 

凡Button1的屬性掛鉤通過在界面生成器中按住Ctrl鍵拖動按鈕。

然後在你的.m實現文件中,下面的設置將使你能夠做你正在尋找的東西。

-(IBAction)button2Pressed:(id)sender{ 

if (self.button1.selected){ 

self.button1.selected = NO; 

}else 

self.button1.selected = YES; 


} 

所以,當你按下按鈕2,這將使其成爲「選擇」與否,這意味着Button1的會做你需要什麼都,這裏的狀態是由BUTTON2控制將Button1的狀態。

-(IBAction)button1Pressed:(id)sender{ 

if (self.button1.selected){ 

//Place your code here for button 1 to do something in this state 

} else 

//Place your code here for button 1 to do something in this UN-selected state 

}

我希望這有助於你想要做什麼。 謝謝,吉姆。

+0

真的很容易,我想做更復雜的事情=) –

0

你可以使用UIButton的UIControlState和if語句。

(即

buttton.selected.... 
buttton.enabled..... 
buttton.highlighted.... 

,如果我的理解是否正確?