我正在使用一个项目,我正在使用UICollectionView来创建一个“图像报告器”,我在那里广告一系列标志. collectionView是一个项目高和十二个项目长,一次显示两到三个项目(取决于徽标的大小可见).
有没有人能够做这项工作?我可以使滚动工作
[myCollection scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:(myImages.count -1) inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:YES];
但这太过分了!
[UIView animateWithDuration:10 delay:2 options:(UIViewAnimationoptionAutoreverse + UIViewAnimationoptionRepeat) animations:^{ [myCollection scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:(myImages.count -1) inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:NO]; } completion:nil];
这产生了所需的滚动速度,但是只有最后几个单元格在系列中可见.我怀疑他们(甚至起始的可见细胞)正在出场.
有什么想法吗?
解决方法
你可以尝试这种方法:
@property (nonatomic,assign) CGPoint scrollingPoint,endPoint; @property (nonatomic,strong) NSTimer *scrollingTimer; @synthesize scrollingPoint,endPoint; @synthesize scrollingTimer; - (void)scrollSlowly { // Set the point where the scrolling stops. self.endPoint = CGPointMake(0,300); // Assuming that you are starting at {0,0} and scrolling along the x-axis. self.scrollingPoint = CGPointMake(0,0); // Change the timer interval for speed regulation. self.scrollingTimer = [NSTimer scheduledTimerWithTimeInterval:0.015 target:self selector:@selector(scrollSlowlyToPoint) userInfo:nil repeats:YES]; } - (void)scrollSlowlyToPoint { self.collectionView.contentOffset = self.scrollingPoint; // Here you have to respond to user interactions or else the scrolling will not stop until it reaches the endPoint. if (CGPointEqualToPoint(self.scrollingPoint,self.endPoint)) { [self.scrollingTimer invalidate]; } // Going one pixel to the right. self.scrollingPoint = CGPointMake(self.scrollingPoint.x,self.scrollingPoint.y+1); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。