UIButton作为开关
我正在尝试在Xcode4中为iOS创build一个button式推送button。 我正在使用的代码是
- (IBAction)btnAll:(id)sender { UIButton *button = (UIButton *)sender; button.selected = !button.selected; }
现在工作正常。 但是我的问题是,当我打开的时候,我把它按下,然后又popup来,然后终于打开。 该应用程序的作品,但这是非常丑陋的,但。
我首先将“高亮”图像设置为打开。 所以当我突出显示这个button时,它就会popup来。 这工作正常。 但是当我把它关掉的时候,问题是一样的,方向相反。
我试图把这个代码:
- (IBAction)btnAll:(id)sender { UIButton *button = (UIButton *)sender; if(button.selected) { [button setImage[UIImage imageNamed@"off.png"] forState:UIControlStateHighlighted]; } else { [button setImage[UIImage imageNamed@"on.png"] forState:UIControlStateHighlighted]; } button.selected = !button.selected; }
但是,只要button.selected = !button.selected
没有区别。 所以它不会做任何改变。
我也尝试触发“Touch Down”上的IBAction,但你可以想象这会是多么的令人沮丧。
有没有人得到解决这个问题? 有没有人与那个斗争呢?
打招呼,非常感谢Julian
之前我也遇到类似的问题,点击的时候button有点奇怪。 试试这个代码,让我知道如果它的作品
UIButton *button = (UIButton *)sender; if(button.selected) { [button setImage:[UIImage imageNamed:@"off.png"] forState:UIControlStateHighlighted]; [button setImage:[UIImage imageNamed:@"off.png"] forState:UIControlStateSelected]; [button setImage:[UIImage imageNamed:@"off.png"] forState:UIControlStateHighlighted | UIControlStateSelected]; } else { [button setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateHighlighted]; [button setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateSelected]; [button setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateHighlighted | UIControlStateSelected]; } button.selected = !button.selected; If (button.selected) { [button setImage:[UIImage imageNamed:@"on.png"] forState:UIControlStateNormal]; } else { [button setImage:[UIImage imageNamed:@"off.png"] forState:UIControlStateNormal]; }
当您点击并按住button时,状态实际上是“高亮显示”和“选定”,因此您需要“高光”和“选定”状态的图像。
不要手动切换图像,只需在Interface Builder中设置选定状态的图像,并在点击button时切换selected
属性。
同意吉姆,你的代码需要稍作修改如下…
[button setImage[UIImage imageNamed@"off.png"] forState:UIControlStateNormal]; [button setImage[UIImage imageNamed@"on.png"] forState:UIControlStateSelected];
有两个button创build。
把button放在一个上面。
可以在devise构build器中使用“自定义button”选项设置默认和选定图像。
-(void)firstButtonClicked { firstButton.hidden = YES; secondButton.hidden = NO; } -(void)secondButtonClicked { firstButton.hidden = NO; secondButton.hidden = YES; }
- 如何在Swift 3.0中通过Segue传递variables和对象
- 我如何修复未找到的“GADInsterstitial.h”文件…但它在我的列表中?
- Lexical or processor issue:boost / config / user.hpp'file not found
- FIRDatabaseQuery:如何进行内部连接
- 带有Autolayout约束问题的TableViewCell
- 没有捆绑包网址
- 从viewDidLoad显示警报消息
- iOS中的double / float align和long long / int align有什么区别
- 展开SCNVector3 / SCNVector4值以进行打印?