1

我正在使用 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];
    }
}

显示为 ** Second Scroll * *First Scroll ** Second Scroll * *First Scroll ** Second Scroll * *First Scroll ** Second Scroll * *First Scroll ......

4

1 回答 1

2

使用整数变量来跟踪轮播已滚动了多少次。在您的 .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调用 --> 我们增加numberofScrolls1 并且轮播 2 滚动到相同的位置。轮播 2 完成滚动后,carouselDidEndScrollingAnimation再次调用。我们numberofScrolls再次增加(现在是 2)。但是这一次我们不需要再次滚动另一个视图,self.numberofScrolls%2变成0。

于 2013-05-17T08:15:40.517 回答