iPhone切换按钮实现

时间:2009-08-21 21:22:59

标签: iphone

我想在iPhone应用程序中创建一个切换按钮。但是,我不知道究竟什么是最好的方法。

我正在考虑两种选择。

我可以继承UIButton。这样我就不必实现触摸处理了。我可以创建一个返回布尔值的方法,指示按钮处于开启还是关闭状态。

我也可以从UIView子类开始并从头开始创建它。我认为像转换动画这样的事情会更容易,但我必须创建自己的触摸处理。

您认为最好的是什么?或者你会知道更好的方法吗? (也许网上有开源/免费视图?)

编辑:我不想使用UISwitch,因为我希望我的切换按钮看起来像那样。我希望它是一个大的矩形按钮,并改变背景以指示状态。

谢谢!

7 个答案:

答案 0 :(得分:13)

-(IBAction)toggle{
    if (button.selected == NO) {
        button.selected = YES;

    }
    else {
        button.selected = NO;
    }
}

-(IBAction)toggle:(UIButton*)sender
{
sender.selected = !sender.selected;
}

简单的家伙

答案 1 :(得分:4)

您可以使用UIButton并设置其enabled属性。

在Interface Builder中,您可以为启用和禁用状态设置单独的图像,IBAction更改属性。

答案 2 :(得分:2)

只需创建一个(IBAction)方法,也可以创建一个BOOL。将BOOL默认设置为FALSE。 您的IBAction必须如下所示:

- (IBAction) .... {

    if (bool) {
        // do your things
    }

    else {
        // do your things
    }

    bool =! bool
}

这对我有用!

答案 3 :(得分:0)

是否已有切换按钮,或者我在这里遗漏了什么?

编辑:正如其他人所说,它被称为UISwitch,它会打开和关闭。

答案 4 :(得分:0)

可能我不理解这个问题..你为什么不使用UISwitch

答案 5 :(得分:0)

我也看过UISwitch,但在我的情况下,我不想要一个开/关按钮,我真的想要一个切换按钮。在我的例子中,我想要做的是,有一个看起来像UISegmentedControl的按钮块,但是用户可以一次“切换”控件上的多个按钮。我试图解决的问题是,我有非常有限的屏幕房地产和很多切换到屏幕上。

我的后退可能是一个充满切换单元格的UITableView。这样我就可以在屏幕的固定,可滚动区域中添加任意数量的切换。

可悲的是,UISwitch并不总是符合人们想到的UI规格,所以我猜测发布原帖的绅士也不是在寻找On / Off开关,而是想要一个按钮改变其状态

答案 6 :(得分:0)

我也需要这样做。是不是将启用状态设置为NO会阻止按钮切换回来?

更新

人们建议使用UISwitch,但可以使用所有相关的up,over,disabled,selectedUp,SelectedOver,selectedDisabled状态进行换肤吗?