2011-12-19 3 views
0

Этот код был использован для изменения изображения при его нажатии.Устройство распознавания жеста и UIImageView

в .h

@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! Я хочу обработать click – user567

ответ

3

Вместо UIPinchGestureRecognizer вам необходимо использовать UITapGestureRecognizer. Не забудьте установить такие вещи, как количество требуемых кранов и количество пальцев. Документы очень хороши для распознавателей жестов.

+0

Спасибо, он отлично работает – user567

Смежные вопросы