Обнаруживать одиночное нажатие на UIScrollView, содержащее 'n' UIImageViews

Я просто пытаюсь получить доступ к UIImageView, который был нажат, из UIScrollView.

Я нашел 2 способа достижения вышеуказанного в Интернете.

1-й метод: создайте жест касания на uiimageview перед добавлением его в scrollviewer.

Этот метод у меня не сработал. метод handleSingleTap никогда не вызывается.

У меня нет идей о том, что я делаю неправильно / почему это не работает.

    UITapGestureRecognizer *singleTap = 
    [[UITapGestureRecognizer alloc] initWithTarget:self 
    action:@selector(handleSingleTap:)];
        singleTap.numberOfTapsRequired = 1;
        [imageView addGestureRecognizer:singleTap];
        [singleTap release];

        [framesSourceScrollview addSubview:imageView];
        [imageView release];

            - (void)handleSingleTap:(UIGestureRecognizer *)sender
            {   
                NSLog(@"image tapped!!!");
            }

2-й метод: подкласс UIScrollView

@interface SingleTapScrollViewer : UIScrollView {
}
@end

@implementation SingleTapScrollViewer

- (id)initWithFrame:(CGRect)frame 
{
    return [super initWithFrame:frame];
}

- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event 
{   
    // If not dragging, send event to next responder
    if (!self.dragging) 
        [self.nextResponder touchesEnded: touches withEvent:event]; 
    else
        [super touchesEnded: touches withEvent: event];
}
@end

In the ViewController

- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event 
{
    // Process the single tap here
    NSLog(@"Scroll view single tapped. touches count : %d", touches.count);
UITouch *touch = [touches anyObject]; 
    UIImageView *imgView = (UIImageView*)touch.view;
    NSLog(@"tag is %@", imgView.tag);
}

При использовании этого метода респондент touchesDown действительно вызывается, но «[касается любого объекта]» - это не тот UIImageView, который был затронут.

Я попытался установить «тег» для каждого UIImageView, который я добавляю в scrollview с увеличивающимся счетчиком, но я получаю 0, независимо от того, какое изображение я нажимаю.

Я новичок в какао в целом, и я не знаете, как использовать этого респондента любым другим способом.

Любые предложения / подсказки были бы замечательными.

заранее спасибо.

6
задан CF_Maintainer 3 May 2011 в 21:10
поделиться