2017-01-30 94 views
1

我在UIImageView上添加了UITapGesture。已添加所有代碼。 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;層= CALayer:0x78f793d0

任何幫助讚賞。

+0

你也可以分享viewTapped方法嗎? – EDUsta

+0

當然。 Plz檢查編輯。 –

+0

您的代碼正在工作。 – Sunny

回答

0

您需要在UIImageView上啓用用戶交互,默認情況下禁用該功能。在您的storyboardxib上選擇您的UIImageView,然後在Attribute Inspector中勾選User Interaction Enabled

+0

我在我設置手勢時啓用它 –

+0

您的代碼正在工作檢查是否沒有任何其他視圖覆蓋您的UIImageView – Sunny

+0

沒有視圖重疊請參閱以下堆棧: –

0

試試這個。

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

你連接你的IBOutlet thumbImageView? 你如何申報你的房產?

也許試試下面的代碼。與代碼和xib一起使用userInteractionEnabled

#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; –