2012-03-07 4 views
0

ウィンドウに3つのビューがあります。 UIViewにはUIScrollViewが含まれ、UIScrollViewにはUILabelが含まれています。これらのビューは320 * 460です。 これで、UILabelのlong pressイベントを処理し、UIViewにtapイベントを渡したいと思います。 私はlableのtouchesEnded:を書き換えて、プレス時間を取得します。 時間が足りない場合は、[[self nextResponder] touchesBegan:touches withEvent:event]を使って渡します。 しかし、私はUIScrollviewを書き換えて、[self nextResponder] touchesBegan:touches withEvent:event]を追加しても、UIViewはtouchesBeganイベントを受け取ることができません。 そして、UIScrollViewに対してuserInteractionEnabled = NOを設定した場合、UIViewはtouchedBeganを取得し、UILabelはそれを受信できません。タッチイベントをUIScrollViewのサブビューからスーパービューに渡す方法

UILabelでタッチイベントを最初に取得し、必要に応じてUIViewに渡すにはどうすればよいですか?

ありがとうございました。

+0

ありがとうございました。私のラベルにデリゲートメソッドを実装し、UIViewControllerでデリゲートメソッドを実装して目標を達成しました。 – moyu

答えて

0

私はこの方法であなたの質問を理解していました。

  1. あなたはUiLabelを長押しする必要があります。
  2. UIViewでタッチを検出する必要があります。

UIViewとUILabelの間にはスクロールビューがあります。

  1. UILongpressGestureをUILabelに追加します。 (look here
  2. UIscrollviewからのパスを渡します。
0

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self   action:@selector(singleTapGestureCaptured:)]; 
    [scrollView addGestureRecognizer:singleTap];  

UIScrollViewの

でtouuchイベントを検出するためのUITapGestureRecognizerを使ってみて、あなたがタッチを取得します:

- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture 
{ 
    CGPoint touchPoint=[gesture locationInView:scrollView]; 
} 
関連する問題