我正在使用Icarousel编写Iphone应用程序。我用了2个旋转木马。当我先滚动时,第二个滚动第一个,当我滚动第二个时,首先滚动第二个。
我可以正确地做到这一点,但我遇到的问题是无限循环。
- (void)carouselDidEndScrollingAnimation:(iCarousel *)Carousel
{
if (Carousel == carouselSecond)
{
NSLog(@"***Second Scroll");
[carouselFirst scrollToItemAtIndex:carouselSecond.currentItemIndex duration:2];
}
else if(Carousel == carouselFirst)
{
NSLog(@"***First Scroll");
[carouselSecond scrollToItemAtIndex:carouselFirst.currentItemIndex duration:2];
}
}
显示是 ** 第二次滚动 * * First Scroll ** 第二次滚动 * * First Scroll ** 第二次滚动 * * First Scroll ** 第二次滚动 * * First Scroll ......
答案 0 :(得分:2)
使用Integer变量来跟踪轮播滚动的次数。在你的.h文件中添加:
@property (nonatomic) NSUInteger numberofScrolls;
viewDidLoad
中的执行此操作:
self.numberofScrolls=0;
试试这个:
- (void)carouselDidEndScrollingAnimation:(iCarousel *)Carousel
{
self.numberofScrolls++;
if(self.numberofScrolls%2!=0){
if (Carousel == carouselSecond)
{
NSLog(@"***Second Scroll");
[carouselFirst scrollToItemAtIndex:carouselSecond.currentItemIndex duration:2];
}
else if(Carousel == carouselFirst)
{
NSLog(@"***First Scroll");
[carouselSecond scrollToItemAtIndex:carouselFirst.currentItemIndex duration:2];
}
}
}
让我解释它的作用:
加载视图时,我们将numberofScrolls
设置为0。
当用户停止滚动时,会调用carouselDidEndScrollingAnimation
- >我们将numberofScrolls
增加1,轮播2滚动到同一位置。在滚动完成轮播2后,再次调用carouselDidEndScrollingAnimation
。我们再次增加numberofScrolls
(现在是2)。但是这次我们不需要再次滚动另一个视图,self.numberofScrolls%2
变为0.