2011-12-19 42 views
0

このコードをクリックすると、イメージが変更されます。 .Mジェスチャー認識ツールとUIImageView

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    firstImage.userInteractionEnabled = YES; 
    UIPinchGestureRecognizer *pgr = [[UIPinchGestureRecognizer alloc] 
            initWithTarget:self action:@selector(clickHandler:)]; 
    pgr.delegate = self; 
    [firstImage addGestureRecognizer:pgr]; 
    [pgr release]; 
    // [self clickHandler:self]; 
} 

-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { 
    /* destroy the transition view, set the image first */ 
    UIImageView *transitionImageView = (UIImageView *)context; 
    self.firstImage.image = transitionImageView.image; 
    [transitionImageView removeFromSuperview]; 
    transitionImageView = nil; 
} 

- (void)clickHandler:(id)sender { 
    /* temporary view for the animation */ 
    NSLog(@"Click Handled "); 

    UIImageView *transitionImageView = [[UIImageView alloc] initWithFrame:self.firstImage.frame]; 
    UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[ddata objectForKey:@"pic"]]]]; 
    transitionImageView.image = image; 
    transitionImageView.alpha = 0.0f; 
    [self.view addSubview:transitionImageView]; 

    [UIView beginAnimations:@"UpdateImages" context:transitionImageView]; 
    [UIView setAnimationDuration:2.0f];  
    transitionImageView.alpha = 1.0f; 
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];  
    [UIView commitAnimations]; 
} 

の.h

@interface MyappViewController : UIViewController 
{ 
    NSDictionary *ddata; 
    UIImageView *firstImage; 
} 
@property(retain,nonatomic) IBOutlet UIImageView *firstImage; 

私は何も起こりません画像をクリックすると、私は[自己はclickHandler:自己]を呼び出す場合。 ViewDidLoadでは、イメージが変更されます。私の問題は、画像をクリックするとクリックが処理されないことです。

+0

「UIPinchGestureRecognizer」が必要ですか?これはピンチジェスチャーでのみ機能します。おそらくあなたは 'UITapGestureRecognizer'を意味しましたか? –

+0

@TimKempああ私はピンチが欲しくない!私はクリックを処理したい – user567

答えて

3

UIPinchGestureRecognizerの代わりに、UITapGestureRecognizerを使用する必要があります。必要なタップ数と指数のいずれかを設定することを忘れないでください。ドキュメントはジェスチャー認識ツールに非常に適しています。

+0

ありがとう、それは完璧に動作します – user567

関連する問題