UIButton图像只改变一个按钮
问题描述:
我已经写了一些代码,这取决于选择哪一个来切换2个按钮。如果选择了英国的话,它会变成勾号,无线电通信协议会变成未加密的,反之亦然。但是,这似乎只适用于英国按钮。如果我选择了BR按钮而不是UK按钮,BR按钮会短暂地打勾,但随后会再次打开。UIButton图像只改变一个按钮
我已经正确地链接了我的按钮(我有三重检查),并且BR按钮短暂地勾选它肯定是连接起来的。我使用的代码如下:
.H
@property (weak) IBOutlet UIButton *btUK;
@property (weak) IBOutlet UIButton *btBR;
.M
- (IBAction)changePortal:(id)sender
{
UIButton *button = (UIButton *)sender;
if (button.tag == kUKButton)
{
self.btUK.imageView.image = [UIImage imageNamed:@"tick_box.png"];
self.btBR.imageView.image = [UIImage imageNamed:@"tick_box_empty.png"];
[Singleton sharedSingleton].bUseUKPortal = YES;
}
else if (button.tag == kBRButton)
{
self.btBR.imageView.image = [UIImage imageNamed:@"tick_box.png"];
self.btUK.imageView.image = [UIImage imageNamed:@"tick_box_empty.png"];
[Singleton sharedSingleton].bUseUKPortal = NO;
}
}
我已经在代码中设置断点,并已证实,这两个按钮去在点击时进入相关部分。我也可以确认没有其他代码正在使用btUK和btBR变量,因为我刚刚写完了这些变量。
两个按钮都将changePortal设置为其操作,并且该功能仅在每次单击时调用一次。
我也尝试清洗代码,但这并没有解决我的问题。
如果任何人都可以解释为什么会发生这种情况,那么我将非常感激。
答
现在关于
设置UIButton
图像的正确方法是致电setImage:forState:
。 因此,尝试改变你的代码是这样的:
// Follow this pattern for every button image change
[self.btUK setImage:[UIImage imageNamed:@"tick_box.png"] forState:UIControlStateNormal];
现在关于
imageView
财产
documentation指出:
按钮的图像视图。虽然这个属性是只读的,其自有财产 读/写(只读)
@property(nonatomic, readonly, retain) UIImageView *imageView
讨论
。使用这些属性来配置按钮视图的外观和行为。例如:
UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
button.imageView.exclusiveTouch = YES;
的ImageView的属性返回即使按钮没有被显示 又一个值。系统按钮的属性值为零。
工作完美,谢谢。我假设英国的一个运作正常,代码是正确的。谢谢 – 2013-02-26 12:57:59