我想采用类似于Beats Music应用程序的标签式滑动页面控件,其中两个相关滚动视图相互交互以浏览页面。在动画开始时,我在实际页面上向左滑动。当它滚动得非常快时,我实际上是在上面滚动标签。这与iOS 7/8的多任务应用程序切换器的工作方式类似。
我环顾四周,但找不到用户可以滚动两个滚动视图的示例。通常只是内容控制器移动选项卡,就像在此repo中一样:https://github.com/daria-kopaliani/DAPagesContainer
我对自己如何实现这一点感到有点迷茫。我不能只在容器上放置两个scrollview,并在两个scrollviews上实现scrollViewDidScroll
,因为这会创建一个循环。
有什么想法吗?
答案 0 :(得分:0)
您可以设置BOOL或标记来标识用户拖动的滚动视图的用户,并通过这样做来控制其他滚动视图而不会来回循环。
- (void)viewDidLoad {
[super viewDidLoad];
self.topScrollView.tag = 1;
self.contentScrollView.tag = 2;
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
self.scrollViewInControler = scrollView.tag;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if(scrollView.tag == self.scrollViewInControler && scrollView.tag == 1)
{
//move contentScrollView accordingly
}
else //...
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
{
self.scrollViewInControler = 0;
}
我确信有办法完善这个,但这是主要的想法。