2017-01-30 3 views
1

Я добавил UITapGesture в UIImageView. Добавили весь код. Описание ImageView показывает жесты, но все же он не работает.Жест жест не работает

@interface VideoBaseProgramEditorViewController()<UIGestureRecognizerDelegate> { 

UITapGestureRecognizer* tapGesture; 
} 

...

tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped)]; 
       [tapGesture setNumberOfTapsRequired:1]; 
       tapGesture.delegate = self; 
       thumbImageView.userInteractionEnabled = YES; 
      [thumbImageView addGestureRecognizer:tapGesture]; 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    UIView *view = touch.view; 
    NSLog(@"%@",view); 
    return YES; 
} 

-(void) viewTapped { 

    [self loadVideo]; 
} 

Выпуск:shouldReceiveTouch метод также не звонит.

Описание вида изображения показывает добавленный жест в журналах.

UIImageView: 0x7bb7b370; frame = (0 0; 736 485); opaque = NO; autoresize = W + H; gestureRecognizers = NSArray: 0x7bc80910; layer = CALayer: 0x78f793d0

любая помощь оценена.

+0

Не могли бы вы также использовать метод viewTapped? – EDUsta

+0

уверен. Plz проверит изменения. –

+0

Ваш код работает. – Sunny

ответ

0

Вам необходимо активировать взаимодействие пользователя на UIImageView, который по умолчанию отключен. На вашем storyboard или xib выберите UIImageView, а в Инспекторе атрибутов отметьте User Interaction Enabled.

+0

I включили его в код, когда я устанавливаю на него жест. –

+0

Ваш код работает. Проверьте, нет ли каких-либо других представлений над вашим UIImageView. – Sunny

+0

Нет просмотра перекрытия. См. ниже: –

0

попробуйте это.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    { 
     [super touchesBegan:touches withEvent:event]; 
     NSLog(@"Successfully Tap"); 
    } 
0

Вы связываете свой IBOutlet thumbImageView? Как вы заявляете свои объекты?

Возможно, попробуйте следующий код. Работайте с userInteractionEnabled как кодом, так и xib.

#import "ViewController.h" 

@interface ViewController() <UIGestureRecognizerDelegate> 

@property (nonatomic, strong) UITapGestureRecognizer* tapGesture; 

@property (nonatomic, weak) IBOutlet UIImageView *thumbImageView; 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)]; 
    _tapGesture.delegate = self; 
    [_tapGesture setNumberOfTapsRequired:1]; 
    // _thumbImageView.userInteractionEnabled = YES; // Uncomment if you allow interaction from code 
    [_thumbImageView addGestureRecognizer:_tapGesture]; 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    UIView *view = touch.view; 
    NSLog(@"%@",view); 
    return YES; 
} 

- (void)viewTapped:(UITapGestureRecognizer *)sender { 
    UIView *view = sender.view; 
    NSLog(@"%@",view); 
} 

@end 
+0

Да, мой IBOutlet подключен __weak IBOutlet UIImageView * thumbImageView; –

Смежные вопросы