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

} 

это моя идея, но я не могу определить фактическое состояние кнопки, вызывающей функцию. любая кнопка, которая вызывает эту функцию, должна переключаться между стандартным и выбранным состояниями, чтобы она работала как переключатель. Мне просто нужно иметь собственную фоновую графику, иначе я использовал переключатель.переключить состояние UIButton при нажатии, как переключатель

так, может кто-нибудь исправить мою идею?

ответ

20

Попробуйте так:

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

ой .. это было слишком просто ! Я думаю, что это работает, как я хочу, чтобы он работал, спасибо. Я попробую завтра. Сообщение: вы можете принять ответ за 8 минут, так что завтра я соглашусь с этим – nico

+0

@Vladimir Спасибо. Это прекрасно работает! – Bhagyashree

+0

Да, это ** умный ** способ программирования +1! –

1

Swift 3 способ:

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

(. Благодаря @ нади-Хассана для Swift 3 наконечника)

+1

swift 3 переименован в «selected» в «isSelected» –

+0

Спасибо @NadiHassan – finneycanhelp

Смежные вопросы