首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SVGKit的SVGKImageView子类中检测触摸

在SVGKit的SVGKImageView子类中检测触摸
EN

Stack Overflow用户
提问于 2015-08-24 08:45:34
回答 1查看 458关注 0票数 0

我已经开始为iOS使用这个伟大的iOS了。我正在使用SVGKImageView的子类。现在,在子类SVGKImageView之前,我已经很容易地向它添加了一个UITapGestureRecognizer。但是我的需求使我不得不使用子类,因为我必须将几十个SVGKImageView放在我的父视图上。

(这是因为在其他视图上会有SVGKImageView__transparent部分,我希望能够忽略对α=0的视图区域的触摸,因此我希望能够检测单个SVGKImageView上的触摸,然后检查alpha值,如果触摸位于透明区域,则将触摸事件转发到下一个视图,等等,直到找到某个视图的非透明区域为止)

现在,在子类化SVGKImageView之后,添加UITapGestureRecognizer不起作用,这也是

代码语言:javascript
复制
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

不在子类中调用。我还将SVGKImageView的userInteractionEnabled设置为“是”,但没有用。

有人能告诉我为什么没有touch/tap事件传递给我的SVGKImageView子类吗?

下面是我的子类init方法

代码语言:javascript
复制
- (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;
}
EN

回答 1

Stack Overflow用户

发布于 2015-08-24 09:00:47

让您的代码顺序:

代码语言:javascript
复制
- (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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32177980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档