我有一个自动将图像传递给另一个的scrollview。它有7个图像,我想要当你到达第七个图像时,以与其余过渡相同的方式向我传递第一个图像 而不是迅速移动到第一个位置。
这就是通常所说的无限滚动。任何帮助表示赞赏。
- (void)viewDidLoad
{
for (int i = 1; i < 8 ; i++) {
UIImageView *imagen = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"C%d.png",i]]];
imagen.frame = CGRectMake((i-1)*580,35, 580, 300);
[_scroller addSubview:imagen];
_scroller.indicatorStyle = UIScrollViewIndicatorStyleWhite;
}
_scroller.delegate = self;
_scroller.contentSize = CGSizeMake(580*7, 300);
_scroller.pagingEnabled = YES;
if (scrollingTimer == nil)
{
scrollingTimer = [NSTimer scheduledTimerWithTimeInterval:6
target:self selector:@selector(scrollPages) userInfo:nil repeats:YES];
}
}
-(void)scrollToPage:(NSInteger)aPage{
float myPageWidth = [_scroller frame].size.width;
[_scroller setContentOffset:CGPointMake (aPage * myPageWidth, 0) animated:YES];
}
-(void)scrollPages{
[self scrollToPage:currentPage%7];
currentPage++;
}
答案 0 :(得分:1)
在分页UIScrollView
中实现无限分数的一种方法是在滚动视图的末尾放置第一页的副本(反之亦然,如果你想在两个方向上无限滚动)。
This article使用UICollectionView
代替,但分页UIScrollView
的概念相同。当用户在滚动视图的末尾滚动到第一页的副本时,将内容偏移设置回实际的第一页(没有动画,因此用户不知道它发生了)。
以下是我认为有用的其他一些资源: