UICollectionView-带有计时器的水平自动滚动 [英] UICollectionView - Horizontal AutoScroll with Timer

查看:271
本文介绍了UICollectionView-带有计时器的水平自动滚动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用带有计时器的水平自动滚动.我希望它一个一个地滚动.

I am using Horizontal Auto Scroll using timer. I want it to scroll one by one.

就我而言,它是从左向右滚动连续的.最后,它还会在最后一个单元格之后滚动空白.

In my case it is scrolling continuos from left to right. and in last it also scroll white space after last cell.

@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;
 }
}

推荐答案

在您的collectionViewCell的自定义类中:

self.contentView.frame = self.bounds;
self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth |
                                    UIViewAutoresizingFlexibleHeight;

,并删除任何其他width计算.

and remove any other width calculations.

这篇关于UICollectionView-带有计时器的水平自动滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆