2012-01-26 11 views
0

私は1つのスクロールビューとイメージビューを自分のビューに追加しました。この画像ビューをタッチすると、スクロールビューがスクロールします。私のスクロールビューには、別々に書かれたタッチイベントを持つたくさんのイメージビューがあります。ビューにサブビューとして追加されたスクロールビュー内のuiimageviewにタッチイベントを渡す

ここビュー階層

      View 
          | 
          | 
        ------- -------- 
        |     | 
       imageView1   scrollview 
             | 
            ........................... 
            |   |  |.....| 
           imageviews2 

Imageview1外観にimagesview2を超えています。

スクロールビューをスクロールすると、スクロールビュー内のimageViewの一部に触れることができません。スクロールビューは、ビュー内の画像ビューの背後にあるためです。

touchviewをimageviewsの後ろに置いたときに、どのようにtouchイベントをimageviews2に渡すことができますか。

+0

'setUserInteractionEnabled:' imageView1'ためNO'? – basvk

+0

ユーザーがスクロールビューに触れるときにスクロールする必要があるため、指示通りにはできません。私がこれを行うと、その機能を追加することはできません。 – iOSD

+0

imageView1でuserInteractionを無効にしても、 'UIScrollView'のスクロールは有効になります... – basvk

答えて

0

あなたはUIViewをサブクラス化しimageView1をスキップするそのサブクラスで

​​

をオーバーライドする必要があります。

あなたはサブクラスUIImageViewで逃げると、そのクラスのメンバーとしてimageView1をインスタンス化し、pointInside

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
{ return NO; } 
+0

例を挙げて幅広く説明できますか? – iOSD

0

をオーバーライドすると、「遅延コンテンツタッチ」との「解約コンテンツタッチ」をオフにすることも忘れてはいけないかもしれませんあなたのスクロールビュー!

0

この回答が役に立つと願っています。私はhittestを使わずにやった。

スクロールビュー内のすべてのサブビューを撮影し、それが画像ビューであるかどうかをチェックして以下を実行しました。

[ビューtouchesBegan:touches withEvent:event]を使用してtoucheventを別のビューに渡しました。私たちはtouchesMovedとtouchesEndedでも同じことを書かなければなりません。

おかげで、あなたは親ビューの境界外ですUIViewsにタッチイベントを渡す必要が

Joku

0

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 

    // Convert the point to the target view's coordinate system. 
    // The target view isn't necessarily the immediate subview 
    CGPoint pointForTargetView = [self.targetView convertPoint:point fromView:self]; 

    if (CGRectContainsPoint(self.targetView.bounds, pointForTargetView)) { 

     // The target view may have its view hierarchy, 
     // so call its hitTest method to return the right hit-test view 
     return [self.targetView hitTest:pointForTargetView withEvent:event]; 
    } 

    return [super hitTest:point withEvent:event]; 
} 

https://developer.apple.com/library/ios/qa/qa2013/qa1812.html

関連する問題