UIButton行动不起作用

时间:2012-08-11 22:53:13

标签: objective-c cocoa uibutton

我在使用UIButton时遇到了一些麻烦。

这是我的代码:

enter image description here

我没有使用Interface Builder,而且我是一名新程序员。

我想要的是,当选择按钮时,标题会发生变化,按钮的透明度会从可见的一半变为完全可见。

提前致谢,-Marnix

2 个答案:

答案 0 :(得分:1)

问题是当您创建按钮时,if语句只执行一次。在MyCode2内,添加以下行:

[Button1 addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchDown];


每次按下按钮,都会执行buttonAction方法,所以:

- (IBAction)buttonAction:(id)sender {
    if(Button1.selected == NO) {
        // Do your "NO" stuff
    }else if(Button1.selected == YES) {
        // Do your "YES" stuff
    }
}

您必须在.h中声明此IBAction,并在.m文件中添加此方法。

答案 1 :(得分:1)

首先,您应该为不同的控制状态设置标题,如

[Button1 setTitle:@"UnTapped" forState:UIControlStateSelected];

其次,您不需要在此检查中加入setTitle方法。

此外,您需要将此检查放在按钮的方法内以使其工作。如果您没有使用IB,那么只需使用addTarget: action: forControlEvent之类的

[Button1 addTarget:self actoin:@selector(changeButtonState:) forControlEvent:UIControlEventTouchUpInside];

最后,您是否在触摸后保持选中按钮?如果没有,请添加

Button1.selected = !Button1.selected

在方法中。总而言之,您的方法应如下所示

- (IBAction)buttonAction:(id)sender {
    Button1.selected = !Button1.selected
    if(Button1.selected == NO) {
        Button1.alpha = 0.5
    }else if(Button1.selected == YES) {
        Button1.alpha = 1.0
    }
}