我已经开始SVGKit
在 iOS 上使用它。我正在使用SVGKImageView
. 现在,在子类化之前,SVGKImageView
我可以很容易地添加一个UITapGestureRecognizer
。但是我的要求使我必须使用子类,因为我必须SVGKImageView
在我的父视图上放置数十个。
(这是因为在其他视图上会有SVGKImageView
透明部分,我希望能够忽略 alpha = 0 的视图区域上的触摸,所以我希望能够检测单个触摸SVGKImageView
然后检查 alpha 值以及是否触摸在透明区域将触摸事件转发到下一个视图,依此类推,直到找到某个视图的非透明区域)
现在在子类化之后SVGKImageView
添加UITapGestureRecognizer
不起作用,这也是
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
在我的子类中没有调用。我也将 SVGKImageView 设置userInteractionEnabled
为 YES 但无济于事。
谁能帮助告诉我为什么没有将触摸/点击事件传递给我的
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;
}