Seb*_*ian 13 nested uiscrollview hittest touchesbegan ios
我有2个滚动视图,两个都应该垂直滚动.外部滚动视图(红色)包含搜索栏和内部滚动视图(蓝色).内部滚动视图应该无限滚动(它包含图像/项目,并具有无限滚动实现).
我希望这个控制器工作的方式如下:
向下滚动时,外部滚动视图应首先滚动,搜索栏应消失(滚出内容区域).只有在那之后,内部滚动视图才应该开始滚动.向上滚动时,内部滚动视图应一直滚动到顶部.只有这样外部滚动视图才能进行滚动事件,最后向上滚动以使搜索栏再次可见.
如果我只是在没有任何修改的情况下将它们嵌套在IB中,那么内部滚动视图会捕获所有滚动事件,而它会以相反的方式工作.
请记住,我在这里使用内部滚动视图作为简化的比喻.在我的应用程序中,我实际上有一个控件,它有一个带嵌套表视图的滚动视图(滚动视图让我水平页面,表视图让我垂直滚动).

仅使用一个scrollView并设置搜索栏的contentInset/contentOffset。沿着这条线的东西:
UIEdgeInsets oldEdgeInset = [[self scrollView] contentInset];
CGRect f = [[self searchBar] frame];
UIEdgeInsets newEdgeInset = UIEdgeInsetsMake(CGRectGetMaxY(f), 0, 0, 0);
CGPoint offset = [[self scrollView] contentOffset];
offset.y += oldEdgeInset.top - newEdgeInset.top;
[[self scrollView] setContentOffset:offset];
[[self scrollView] setContentInset:newEdgeInset];
[[self searchBar] setFrame:f];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4413 次 |
| 最近记录: |