我的View上有一些imageViews,现在我想在imageView中更改图像的background.color。通过在同一个imageView上单击第二次,它应该更改为第一个图像。
我怎么能这样做?
答案 0 :(得分:1)
保持BOOL或枚举ivar以跟踪图像状态。对水龙头做出反应时,请更换图像。
您可以拥有图像视图的自定义子类,以使此状态始终与正确的对象相关联。
// .h
typedef enum { StateOriginal, StateFlipped } FlipState;
@interface FlippableImageView : UIImageView
@property (nonatomic, assign) FlipState state;
@end
// in view controller
if (flipImageView.state == StateOriginal) {
flipImageView.image = imageFlipped;
flipImageView.state = StateFlipped;
}
else {
flipImageView.image = imageOriginal;
flipImageView.state = StateOriginal;
}
该类还可以保存两个图像并运行一个漂亮的动画......
答案 1 :(得分:0)
您可以使用变量来检查ImageView被触摸的次数。 这可以在:
中更改- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
if (touch.view == imageView) {
// Make that variable ++;
if (variable == 2){
imageView.image = [UIImage imageNamed:@"a.png"];
}
}
}