2016-11-10 5 views
0

私は画像ビューを持っており、画像ビューの片面だけをタップしたいと思います。ジェスチャーのフレームを設定することは可能ですか?誰でもソリューションを手助けできますか?あなたはImageViewの上にビューを重ねると、この意志のように、この新しいビューに何かをタップ認識を追加することができますTapGesture Recognizerのフレームを設定する方法

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    if ([touch locationInView:yourview].x < somePoint.x) { 
     return false; 
    } else { 
     return true; 
    } 
} 
+1

はちょうどその時、画像ビューの透視図1の側を追加し、そのビューにジェスチャーを追加するには、ダブルタップ処理する –

+0

歓迎スミ... –

+0

スタックオーバーフローへようこそ!あなたの質問のタイトルを編集して、より詳細な情報を追加し、質問に明快さをもたらしました。 Antタイプのジェスチャのフレームを設定することはできません。ジェスチャ認識ツールをビューオブジェクトに追加すると、ビューのフレームを操作したり、タップジェスチャを追加したビュー内のタップの位置をテストできます。 –

答えて

1

は使用UIGestureRecognizerDelegate、私はあなたが比較する方法についてのアイデアを得ることができると思いますtapable

UIView tapView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, imageView.frame.size.width/2, imageView.frame.size.height)]; 

[imageView addSubView:tapView] 

UITapGestureRecognizer *singleFingerTap = 
    [[UITapGestureRecognizer alloc] initWithTarget:self 
              action:@selector(handleSingleTap:)]; 
[tapView addGestureRecognizer:singleFingerTap]; 
0

画像の左側を作るあなたは、単にあなたの要件ごとにフレームを使ってImageViewの上にUIViewのを入れて、そのUIViewの上でタップジェスチャーを置くことができます。

これは、ストーリーボード/ xibまたはプログラムによって行うことができます。

たとえば、プログラムでは、imageViewの幅が50ピクセルの領域内でのみタップします。このために:

UIView *vw = [[UIView alloc] initWithFrame:CGRectMake(imgView.frame.origin.x, imgView.frame.origin.y, 50, imgView.frame.size.height)]; 

    // add gesture to view 
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; 
    tapGesture.numberOfTapsRequired = 2; 
    [vw addGestureRecognizer:tapGesture]; 

    [imgView addSubview:vw]; 

は今...

-(void)handleTapGesture:(UITapGestureRecognizer *)gesture 
{ 
    // handle double tap 
} 
関連する問題