Question

J'essaie simplement de récupérer l'UIImageView sur laquelle vous avez tapé, à partir de UIScrollView.

J'ai trouvé deux façons d'atteindre ce qui précède sur le Web.

1ère méthode: créez un geste de toucher sur uiimageview avant de l'ajouter à scrollviewer.

Cette méthode n'a pas fonctionné pour moi.la méthode handleSingleTap n'est jamais appelée.

Je n'ai plus d'idées sur ce que je fais mal / pourquoi cela ne fonctionne pas.

    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ème méthode: sous-classe 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);
}

En utilisant cette méthode, le répondeur touchesDown est appelé mais le '[touche tout objet]' n'est pas l'UIImageView sur laquelle on a tapé.

J'ai essayé de définir la «balise» sur chaque UIImageView que j'ajoute à la vue par défilement avec un compteur croissant, mais je récupère 0 quelle que soit la vue d'image sur laquelle je tape.

Je suis nouveau dans le cacao en général et je ne sais pas comment tirer parti de ce répondeur d'une autre manière.

Toutes les suggestions / astuces seraient très bien.

merci d'avance.

Était-ce utile?

La solution

avez-vous défini userInteractionEnabled= YES sur UIImageView.Il est désactivé par défaut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top