2010-07-21 67 views
7
-(void)setState:(id)sender 
{ 
    UIButton* button = (UIButton*)sender; 
    BOOL buttonBool = ([button state]==selected : YES ? NO); 
    [sender setSelected:buttonBool++]; 

} 

這是我的想法,但我無法弄清楚調用funktion的按鈕的實際狀態。 任何調用此函數的按鈕都應該在默認狀態和選定狀態之間切換,以便它可以像開關一樣工作。我只需要擁有自己的背景圖形,否則我已經使用了一個開關。切換UIButton狀態時按下,像一個開關

所以,任何人都可以請糾正我的想法?

回答

20

試試這個方法:

-(void)setState:(id)sender 
{ 
    UIButton* button = (UIButton*)sender; 
    button.selected = !button.selected; 
} 
+0

哦..這太簡單了! 我認爲這是有效的,我希望它如何工作,謝謝。我明天會試試信息:你可以在8分鐘內接受答案,所以明天我會接受這個 – nico 2010-07-21 14:55:42

+0

@Vladimir謝謝。它完美的工作! – Bhagyashree 2014-07-31 07:11:53

+0

是的,這是**智能**編程+1的方式! – 2014-11-20 23:30:23

1

斯威夫特3路:

func setState(button: UIButton) { 
    button.isSelected = !button.isSelected 
} 

(感謝@納迪·哈桑的斯威夫特3尖)

+1

swift 3將「selected」更名爲「isSelected」 – 2017-05-17 06:32:34

+0

Thanks @NadiHassan – finneycanhelp 2017-05-22 18:07:26