0

我在使用 UIButton 时遇到了一些问题。

这是我的代码:

在此处输入图像描述

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

What I want is that when the button is selected the title changes and the button's transparency changes from half visible to fully visible.

提前致谢,-Marnix

4

2 回答 2

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
    }
}

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

于 2012-08-11T23:14:56.723 回答
1

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

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

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

此外,您需要将此检查放在按钮的方法中以使其工作。如果你没有使用 IB,那么就使用addTarget: action: forControlEventlike

[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
    }
}
于 2012-08-11T23:14:59.380 回答