Objective C - 点击手势计数

时间:2013-08-02 13:39:32

标签: ios objective-c macos ipad

我的View上有一些imageViews,现在我想在imageView中更改图像的background.color。通过在同一个imageView上单击第二次,它应该更改为第一个图像。

我怎么能这样做?

2 个答案:

答案 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"];
        }
    }
}