2015-06-20 44 views
0

我使用DMCircularScrollView库在这里找到:https://github.com/malcommac/DMCircularScrollView控制2个DMCircularScrollViews通过滚动1

库完成什么是循环回到开始的“无限”滚动视图。

我有2个DMCircularScrollViews,每个有3个项目。不过,每个项目的宽度都不相同。在第一个中,它们都是scrollViewWidth/2,在第二个中它们等于滚动视图的宽度。如何通过滚动第一个滚动视图来控制第二个滚动视图?即:我移动第一个滚动视图来选择第二个项目,当我移动第一个项目时,如何自动使第二个滚动视图变成动画?

在阅读关于链接到常规UIScrollViews的其他帖子后,我尝试实现委托方法scrollViewDidScroll并设置第二个滚动视图的内容偏移量,但是在这种情况下该方法不起作用。

回答

0

我想通了!我采取了以下方法:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 

    NSLog(@"Test: %f", testScrollView.scrollView.contentOffset.x); 

    if(scrollView == threePageScrollView.scrollView) { 
     //[testScrollView relayoutPageItems:NSUIntegerMax]; 
     [testScrollView reloadData]; 
     NSLog(@"Third: %f", threePageScrollView.scrollView.contentOffset.x); 
     [testScrollView.scrollView setContentOffset:CGPointMake(threePageScrollView.scrollView.contentOffset.x*2, threePageScrollView.scrollView.contentOffset.y) animated:NO]; 
     [testScrollView reloadInputViews]; 

    } 

} 

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)sv { 

    [testScrollView relayoutPageItems:NSUIntegerMax]; 

    if(sv == threePageScrollView.scrollView) { 

     [testScrollView reloadData]; 
     NSLog(@"Third: %f", threePageScrollView.scrollView.contentOffset.x); 
     [testScrollView.scrollView setContentOffset:CGPointMake(threePageScrollView.scrollView.contentOffset.x*2, threePageScrollView.scrollView.contentOffset.y) animated:NO]; 
     [testScrollView reloadInputViews]; 

    } 
    //[self delegateSelector:@selector(scrollViewDidEndScrollingAnimation:) toDelegateWithArgument:sv]; 
} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)sv 
{ 
    [testScrollView relayoutPageItems:NSUIntegerMax]; 
    //[self delegateSelector:@selector(scrollViewDidEndDecelerating:) toDelegateWithArgument:sv]; 
    testScrollView.currentPageIndex = threePageScrollView.currentPageIndex; 
} 

哪里threePageScrollView是一个我滚动和testScrollView是正在通过代码动画的一个。