UITapGestureRecognizer не работает с пользовательским классом UIImageView

#ios #objective-c #uiimageview

#iOS #objective-c #uiimageview

Вопрос:

UITapGestureRecognizer не работает с моим классом UIImageView в моем 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
 

Почему невозможно получить событие, когда активированы родители представлений формы с поддержкой userInteractionEnabled?

Спасибо за вашу помощь 🙂

Комментарии:

1. Отсутствует self.userInteractionEnabled = YES; init ?

2. По умолчанию значение @Larme userInteractionEnabled равно YES.

3. Не включен UIImageView , или это что-то новое.

4. @Larme правильно: прямо в ссылке UIImageView в разделе » Реагирование на события касания » указывается, что userInteractionEnabled по умолчанию установлено значение игнорировать взаимодействие с пользователем.

5. Почему? Для userInteractionEnabled для этой функции установлено значение YES.

Ответ №1:

mmmhhh вы создали пользовательский класс UIImageView со свойством UIImageView, добавленным как subview. Почему? Просто используйте «self».

Это не работает, потому что вы добавляете жест касания к UIImageView, который находится под другим.

Комментарии:

1. Но просто использовать «self» не работает. Я не понимаю, без UIImageView работает. :/ Что делать для использования касания в пользовательском классе?

2. С self это не работает? Почему? Что вы сделали в этом случае?