2011-12-19 1 views
0

이 코드를 클릭하면 이미지가 변경됩니다. 하는 .m에서 .H제스처 인식기 및 UIImageView

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

에서

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

나는 이미지 아무 일도 발생하지 않습니다,하지만 난 [자체는 clickHandler : 자기]를 호출하는 경우를 클릭하면, ViewDidLoad에서 이미지가 변경됩니다. 내 문제는 이미지를 클릭 할 때 클릭이 처리되지 않는다는 것입니다.

+0

'UIPinchGestureRecognizer'를 원하십니까? 핀치 제스처에서만 작동합니다. 아마도 당신은'UITapGestureRecognizer'를 의미했을까요? –

+0

@TimKemp 아 Pinch 싶지 않아! 나는 클릭을 처리하고 싶다 – user567

답변

3

UIPinchGestureRecognizer 대신 UITapGestureRecognizer을 사용해야합니다. 필요한 도청 수와 손가락 수를 설정하는 것을 잊지 마십시오. 문서는 제스처 인식기에 매우 적합합니다.

+0

고마워, 완벽하게 작동한다. – user567