在UIScrollView上使用UIView处理滚动,ScrollView不会滚动

时间:2012-05-01 18:27:29

标签: ios ios5 uiview uiscrollview touch

我想在UIScrollView中检测到顶部有UIView的触摸。这个UIView上有按钮,所以我无法在UIView上禁用userInteractionEnabled

以下是更好理解的层次结构:

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的空位。

有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分: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;

}