Обнаружение одного нажатия на UIScrollView, содержащего 'n' UIImageViews - PullRequest
6 голосов
/ 04 мая 2011

Я просто пытаюсь заполучить 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, который я добавляю в просмотр прокрутки с увеличивающимся счетчиком, но я получаю 0 независимо от того, на какое изображение я нажимаю.

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

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

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

1 Ответ

12 голосов
/ 04 мая 2011

вы установили userInteractionEnabled = YES в UIImageView.По умолчанию он выключен.

...