我在使用 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
我在使用 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
问题是该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
文件中。
首先,您应该为不同的控件状态设置标题,例如
[Button1 setTitle:@"UnTapped" forState:UIControlStateSelected];
其次,您不需要将setTitle
方法放在此检查中。
此外,您需要将此检查放在按钮的方法中以使其工作。如果你没有使用 IB,那么就使用addTarget: action: forControlEvent
like
[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
}
}