2013-08-02 21 views
0

我的視圖中有一些imageViews,現在我想更改imageView中圖像的background.color。通過在同一個圖像上點擊第二次,它應該改變爲第一個圖像。Objective C - 點擊手勢計數

我該怎麼做?

回答

1

保留BOOL或enum 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; 
} 

類也可以容納兩個圖像,並運行一個漂亮的動畫......

+0

我的問題,我不知道點擊了哪個圖像,因爲他們沒有在.h文件中定義的。它們是通過從XML文件解析而動態生成的。 – user2019219

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