我已经开始为iOS使用这个伟大的iOS了。我正在使用SVGKImageView的子类。现在,在子类SVGKImageView之前,我已经很容易地向它添加了一个UITapGestureRecognizer。但是我的需求使我不得不使用子类,因为我必须将几十个SVGKImageView放在我的父视图上。
(这是因为在其他视图上会有SVGKImageView__transparent部分,我希望能够忽略对α=0的视图区域的触摸,因此我希望能够检测单个SVGKImageView上的触摸,然后检查alpha值,如果触摸位于透明区域,则将触摸事件转发到下一个视图,等等,直到找到某个视图的非透明区域为止)
现在,在子类化SVGKImageView之后,添加UITapGestureRecognizer不起作用,这也是
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 不在子类中调用。我还将SVGKImageView的userInteractionEnabled设置为“是”,但没有用。
有人能告诉我为什么没有touch/tap事件传递给我的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;
}发布于 2015-08-24 09:00:47
让您的代码顺序:
- (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;
}https://stackoverflow.com/questions/32177980
复制相似问题