按下时切换UIButton状态,如开关

nic*_*ico 7 iphone objective-c uibutton togglebutton

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

}
Run Code Online (Sandbox Code Playgroud)

这是我的想法,但我无法弄清楚调用funktion按钮的实际状态.任何调用此功能的按钮都应该在默认状态和选择状态之间切换,以便它像交换机一样工作.我只需要拥有自己的背景图形,否则我使用了一个开关.

那么,任何人都可以纠正我的想法吗?

Vla*_*mir 20

试试这种方式:

-(void)setState:(id)sender
{
    UIButton* button = (UIButton*)sender;
    button.selected = !button.selected;
}
Run Code Online (Sandbox Code Playgroud)

  • 我不明白为什么Apple没有把它作为'UIButton`的内置方法.这是一个常见的用例,简单的` - (void)toggleSelected:(UIButton*)sender`会让很多人的事情变得容易些.对于那些需要在他们的应用程序中切换的按钮的人来说,在`UIButton`上创建一个名为`UIButton + Toggle`之类的东西可能是有意义的,并扩展UIButton来添加这个功能. (2认同)