我有多个按钮。
它们全部加载到viewDidLoad中。我想要它,所以一旦按下一个按钮,它就会变为另一个图像。
所以Img1通过viewDidload加载,然后一旦被按下,就转到Img2
这是我目前使用的代码:
在viewdidload中:
btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
[btn1 setFrame:CGRectMake(367, 117, 97, 25)];
[btn1 setImage:[UIImage imageNamed:@"img1.png"] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(playSound:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn1];
在ibaction(我试过,但我猜)
-(IBAction)ButtonAction
{
if (btn1==0)
{
btn1=1;
[btn1 setImage:[UIImage imageNamed:@"img1.png"] forState:UIControlStateNormal];
}
else
{
[btn1 setImage:[UIImage imageNamed:@"img2.png"] forState:UIControlStateNormal];
btn1=0;
}
}
感谢您的帮助
答案 0 :(得分:0)
if (btn1==0)
我没有得到那个部分。
一个简单的解决方案是为选定和未选择状态提供两个不同的图像。
btn1.selected = YES,将自动选择所选的按钮图像。 btn1.selected = NO,将自动选择未选择的按钮图像。
答案 1 :(得分:0)
您需要确保将UIButton
连接到正确的选择器。另外,我会使用@property
或全局/实例变量来跟踪UIButton
中当前的图像。这里有一些代码可以解决这个问题:
//... in @interface
@property (nonatomic, strong) NSString *btn1ImageName;
- (void)viewDidLoad {
[super viewDidLoad];
// ...
self.btn1ImageName = @"img1.png";
btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
[btn1 setFrame:CGRectMake(367, 117, 97, 25)];
[btn1 setImage:[UIImage imageNamed:self.btn1ImageName] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(toggleImage:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn1];
}
- (void)toggleImage:(UIButton *)btn1 {
self.btn1ImageName = ([self.btn1ImageName isEqualToString:@"img1.png"]) ? @"img2.png" : @"img1.png";
[btn1 setImage:[UIImage imageNamed:self.btn1ImageName] forState:UIControlStateNormal];
}