简体   繁体   中英

UITapGestureRecognizer not working with UIImageView Custom class

UITapGestureRecognizer is not working with my UIImageView Class on my UIViewController.

HousePictureView *pictureHouse = [[HousePictureView alloc] init:[dictionary objectForKey:@"photo_url"]];
UITapGestureRecognizer *picturestap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showpictures)];
picturestap.numberOfTapsRequired = 1;
[pictureHouse addGestureRecognizer:picturestap];
[parentScroll addSubview:pictureHouse];

HousePictureView.m

@interface HousePictureView() {
    CGFloat screenwidth;
}

@property (strong, nonatomic) UIImageView *pictureView;

@end

@implementation HousePictureView


-(id)init:(NSString*)url
{
    screenwidth = [UIScreen mainScreen].bounds.size.width; // Width of this screen
    if(self = [super init])
    {
        _pictureView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,screenwidth,300)];
        [_pictureView setImageWithURL:[NSURL URLWithString:url] placeholderImage:[Functions resizeImage:[UIImage imageNamed:@"nophoto"] newSize:CGSizeMake(screenwidth,300)]];
        _pictureView.userInteractionEnabled = YES;
        [self addSubview:_pictureView];
    }
    return self;
}

@end

HousePictureView.h

@interface HousePictureView : UIImageView

- (id)init:(NSString*)url;

@end

Why does it not possible to have an event while userInteractionEnabled form views parents are activated?

Thank you for your help :)

mmmhhh you have created an UIImageView custom class with a property UIImageView added like a subview. Why? Just use "self".

It does not work because you're adding a tap gesture on a UIImageView that is under another.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM