我试图在单击按钮时在两个不同的图像之间切换。以下是我到目前为止编写的代码。但是,这只会显示一张图片,不会在它们之间切换。
-(IBAction)show {
BOOL img = true;
if (img = true) {
UIImage *img1 = [UIImage imageNamed:@"UnCheck.png"];
[imageview setImage:img1];
}
else {
UIImage *img = [UIImage imageNamed:@"Check.png"];
[imageview setImage:img];
}
}
最佳答案
您的代码有几个问题:
首先,img
是您的 tap 处理程序中的局部变量,因此每次该函数运行时,它都会被设置为 true
。
其次,您的 if
语句实际上包含一个赋值 (=
) 而不是一个比较 (==
),所以即使 img
还不是 true
当您执行 if
语句时它会是。
所有这些意味着您的图像将始终为 UnCheck.png
。
您需要在函数外部使用属性,以便正确跟踪状态。 img
也是一个非常糟糕的变量名,checked
或 isChecked
可能更好。
然后您的按钮处理程序方法只需要切换此属性并设置适当的图像。
@property BOOL isChecked;
-(IBAction)show {
self.isChecked = !self.isChecked;
NSString *imageName = self.isChecked ? @"Check.png":@"UnCheck.png";
UIImage *img = [UIImage imageNamed:imageName];
[imageview setImage:img];
}
关于ios - 使用 Objective-C 单击按钮时更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52126196/