我有一个带图像的按钮,稍后按钮图像会改变,然后几秒后再回来。我希望能够判断在图像不同时是否单击了按钮。谢谢!
答案 0 :(得分:0)
你有几个选择,但我会详细说明其中两个。第一种是更加独立和万无一失,但第二种说法更容易阅读和理解。
最简单的方法可能就是测试图像本身。图像会不时变化,但是当按下按钮时,你并不真正关心,你只关心它是什么样的背景。
换句话说,你真正需要知道的是按钮的背景是MainBackground还是AlternateBackground,所以当按下按钮时,你可以简单地检查它是哪一个。
尝试这样的事情,当按下按钮时:
-(void)buttonPressed:(UIButton*)sender {
UIImage *mainBackground = [UIImage imageNamed:@"YOUR_IMAGE_NAME"];
NSData *imgdata1 = UIImagePNGRepresentation(sender.image);
NSData *imgdata2 = UIImagePNGRepresentation(mainBackground);
if ([imgdata1 isEqualToData:imgdata2]) {
// The button's background is the MainBackground, do one thing
} else {
// The button's background is the AlternateBackground, do another thing
}
}
或者,只要图像的背景发生变化,就可以翻转BOOL值。有点像...
@property BOOL isMainBackground;
...在你的H档案中,然后每当你设置按钮的背景图片时,你也设置self.isMainBackground = YES;
或self.isMainBackground = NO;
然后,按下按钮的方法看起来像这样:
-(void)buttonPressed:(UIButton*)sender {
if (self.isMainBackground) {
// The button's background is the MainBackground, do one thing
} else {
// The button's background is the AlternateBackground, do another thing
}
}