0
タイマーを使用して水平オートスクロールを使用しています。私はそれを一つずつスクロールしたい。UICollectionView - タイマー付き水平スクロール
私の場合は、左から右に連続してスクロールしています。最後に最後のセルの後に空白をスクロールします。
self.contentView.frame = self.bounds;
self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;
およびその他のwidth
の計算を取り除く:あなたのcollectionViewCell
のカスタムクラスで
@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に等しいのviewDidLoadから変数
コールを宣言し、この
のように使用しています?またはスクロール3細胞の後に最初に3細胞を見せているのですか? –
@AgentChocks。アレイカウントに基づくものはありません。配列内の最初の要素から最後までスクロールしてから、逆に – ChenSmile
@AgentChocksをスクロールします。あなたに何か解決策がありました – ChenSmile