Обнаружение касания в подклассе 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;
}
Другие вопросы по тегам