我在使用UIButton时遇到了一些麻烦。
这是我的代码:
我没有使用Interface Builder,而且我是一名新程序员。
我想要的是,当选择按钮时,标题会发生变化,按钮的透明度会从可见的一半变为完全可见。
提前致谢,-Marnix
答案 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
}
}