0

我的视图上有一些图像视图,现在我想更改图像视图中图像的背景颜色。通过在同一个 imageView 上单击第二次,它应该会更改为第一个图像。

我怎么能做到这一点?

4

2 回答 2

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;
}

该类还可以保存两个图像并运行一个漂亮的动画......

于 2013-08-02T13:42:48.177 回答
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"];
        }
    }
}
于 2013-08-02T13:49:52.817 回答