我想在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的空位。
有什么建议吗? 谢谢!
答案 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;
}