Обнаружение касания в подклассе SVGKImageView SVGKit
Я начал использовать этот великий SVGKit
для iOS. Я использую подкласс SVGKImageView
, Теперь перед подклассами SVGKImageView
я легко смог добавить UITapGestureRecognizer
к этому. Но мое требование заставило меня использовать подклассы, так как я должен разместить десятки SVGKImageView
на мой родительский взгляд.
(Это потому, что было бы SVGKImageView
прозрачные участки на других видах, и я хочу иметь возможность игнорировать касания областей просмотра, где альфа = 0, поэтому я хочу иметь возможность обнаруживать касание на одном SVGKImageView
затем проверьте альфа-значение, и если касание находится в прозрачной области, переместите событие касания в следующий вид и т. д., пока не будет найдена непрозрачная область какого-либо вида)
Теперь после подкласса SVGKImageView
добавление UITapGestureRecognizer
не работает, и это
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
не называется в моем подклассе. Я также установил SVGKImageView userInteractionEnabled
Да, но безрезультатно.
Может кто-нибудь помочь сказать мне, почему нет никакого события касания / касания, переданного моему SVGKImageView
подкласс?
Ниже мой подкласс init
метод
- (instancetype)init{
self.tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(svgImageTapped:)];
self.tapGestureRecognizer.numberOfTapsRequired = 1;
self.tapGestureRecognizer.delegate = self;
[self addGestureRecognizer:self.tapGestureRecognizer];
self.imageSVG = [SVGKImage imageNamed:@"SomeFile.svg"];
self = (Subclass*)[[SVGKLayeredImageView alloc] initWithSVGKImage:self.imageSVG];
[self sizeToFit];
self.userInteractionEnabled = YES;
self = [super init];
return self;
}
1 ответ
Позвольте заказать ваш код:
- (instancetype)init{
self = [super init]; // <--- should go first
self = (Subclass*)[[SVGKLayeredImageView alloc] initWithSVGKImage:[SVGKImage imageNamed:@"SomeFile.svg"]];
// self.imageSVG = [SVGKImage imageNamed:@"SomeFile.svg"];
[self sizeToFit];
self.userInteractionEnabled = YES;
return self;
}