2012-05-01 105 views
3

我想要检测顶部具有UIView的UIScrollView中的触摸。这UIView有它的按钮,所以我不能禁用UIView上的userInteractionEnabled在UIScrollView上使用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

谢谢!但我不能改变层次结构..我需要视图和滚动视图是独立的,在同一级别,两个子视图的MainView。 –