2012-05-01 11 views
3

UIViewが上にあるUIScrollViewでタッチを検出したいと思います。このUIViewにはボタンがありますので、UIViewでuserInteractionEnabledを無効にできません。ここでUIScrollView、ScrollViewの上にUIViewをスクロールするScrollViewは役に立ちません

は、より良い理解のための階層です:

UIView (MainView: (0,0) 320x460) 
. .UIScrollView (ScrollView: (0,0) 320x460) 
. .UIView (OverlayView: (0,0) 320x250) 
. . . .UIButton (button1: 50x50) 
. . . .UIButton (button2: 50x50) 
. . . .UIButton (button3: 50x50) 

OverlayViewの外に触れたとき、私はスクロールすることができます。しかし、OverlayViewの空の場所ではありません。

アドバイスはありますか? ありがとうございました!

答えて

0

オーバーレイビューをスクロールビューのサブビューとして追加してから、スクロールビューがスクロールするときにオーバーレイビューのフレームを更新してみてください。

保存初期

CGRect baseOverlayRect = overlayView.frame; 

スクロールビューデリゲート方法でメンバ変数の元のオーバーレイフレーム。

- (void) scrollViewDidScroll:(UIScrollView *)scrollView { 

    CGPoint overlayOrigin = CGPointMake(baseOverlayRect.origin.x, baseOverlayRect.origin.y + scrollView.contentOffset.y); 
    CGRect newOverlayFrame = CGRectMake(overlayOrigin.x, overlayOrigin.y, baseOverlayRect.width, baseOverlayRect.height); 
    overlayView.frame = newOverlayFrame; 

} 
+0

ありがとう!しかし、私は階層を変更することはできません..私はViewとScrollViewは、MainViewの両方のサブビューと同じレベルで独立している必要があります。 –

関連する問題