2015-08-24 4 views
0

Я начал использовать этот отличный SVGKit для iOS. Я использую подкласс SVGKImageView. Теперь перед подклассом SVGKImageView я легко мог добавить UITapGestureRecognizer. Но мое требование заставило меня использовать подклассы, поскольку мне нужно разместить десятки SVGKImageView на моем родительском представлении.Обнаружение касания SVGKit's SVGKImageView подкласса

(Это происходит потому, что будет SVGKImageView прозрачных частей на других представлениях, и я хочу, чтобы иметь возможность игнорировать штрихи на мнениях тех областях, где альфа = 0, так что я хочу, чтобы быть в состоянии обнаружить прикосновение к одной SVGKImageView затем проверить для альфа-значения, и если касание на прозрачную области вперед сенсорного событие следующего вида и так далее, пока не прозрачная область некоторой точки зрения не найдена)

Теперь после того, как подклассы SVGKImageView добавления UITapGestureRecognizer не работает, и это

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

не вызывается в моем подклассе. Я также установил userInteractionEnabled SVGKImageView в 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; 
} 

ответ

0

Пусть ваш код заказа:

- (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

я испытал и без 'UITapGestureRecognizer', но безрезультатно. также [tapGestureRecognizer setCancelsTouchesInView: NO]; бесполезно – Umair

+0

Выполняет ли вызов обратный вызов? – anhtu

+0

ничего не вызывается. В этом проблема – Umair