3

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

为了更好地理解,这是层次结构:

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 的空白处。

有什么建议吗?谢谢!

4

1 回答 1

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;

}
于 2012-05-01T18:58:50.003 回答