【发布时间】:2017-01-02 16:14:36
【问题描述】:
我正在使用计时器使用水平自动滚动。我希望它一一滚动。
在我的例子中,它是从左到右连续滚动。最后它还在最后一个单元格之后滚动空白。
@interface AccountsVC ()<UICollectionViewDataSource, UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>
{
CGFloat width_Cell;
NSTimer *autoScrollTimer;
}
- (void)viewDidLoad
{
[super viewDidLoad];
width_Cell = 0.0;
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self configAutoscrollTimer];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[self deconfigAutoscrollTimer];
}
- (void)configAutoscrollTimer
{
autoScrollTimer = [NSTimer scheduledTimerWithTimeInterval:0.03 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
}
- (void)deconfigAutoscrollTimer
{
[autoScrollTimer invalidate];
autoScrollTimer = nil;
}
- (void)onTimer
{
[self autoScrollView];
}
- (void)autoScrollView
{
CGPoint initailPoint = CGPointMake(width_Cell, 0);
if (CGPointEqualToPoint(initailPoint, self.collectionView.contentOffset))
{
if (width_Cell < self.collectionView.contentSize.width)
{
width_Cell += 0.5;
}else
{
width_Cell = -self.view.frame.size.width;
}
CGPoint offsetPoint = CGPointMake(width_Cell, 0);
self.collectionView.contentOffset = offsetPoint;
}else
{
width_Cell = self.collectionView.contentOffset.x;
}
}
【问题讨论】:
-
你的collectionview单元格宽度等于你的self.width???还是先显示 3 个单元格,然后滚动 3 个单元格?
-
@AgentChocks。不,它全部基于数组计数。从数组中的第一个元素开始滚动到结束然后反向
-
@AgentChocks。你有什么解决办法吗
-
@imran 你成功了吗?空白到底是什么问题?
标签: objective-c uicollectionview uicollectionviewcell horizontal-scrolling