#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 это не работает? Почему? Что вы сделали в этом случае?