我有一個UICollectionView
與單行,並且每個單元格有不同width
,(根據特定標準)。每個cell
都有一個float timeInSeconds
屬性與之關聯。自動滾動的UICollectionView - iOS
我想水平自動滾動UICollectionView
,使單元格應該分別通過與該單元格關聯的timeInSeconds
。
我試着用NSTimer
來做這件事,並且改變了contentOffset
,但沒有按我的意願工作。
代碼:
//this method is called which fires the `NSTimer`
- (void)configAutoscrollTimer {
w = self.messagesCollectionView.contentOffset.x;
autoScrollTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
}
- (void)onTimer {
[self autoScrollView];
}
- (void)autoScrollView {
NSIndexPath *lastIndexPath = [NSIndexPath indexPathForRow:_currentPlayIndex inSection:0];
UICollectionViewCell *cell = [_messagesCollectionView cellForItemAtIndexPath:lastIndexPath];
w += ([(NSNumber*)_messagesArray[lastIndexPath.row][@"duration"] floatValue])/cell.bounds.size.width;
CGPoint offsetPoint = CGPointMake(w, 0);
self.messagesCollectionView.contentOffset = offsetPoint;
}
我相信問題是X
偏移計算,因爲它多少步應根據一些公式移動。我的公式失敗:(
請指導,以如何根據與細胞。感謝相關的時間實現自動滾動!
嘗試打印「w」值後,你增加它,看看它是否相應增加。 – Sebyddd
@Sebyddd已經做了,它確實增加了,但是滾動並不是根據'cell'的時間。就像所討論的「單元格」有4秒相關聯,那麼單元格應該在4秒內通過屏幕。但是這沒有發生。滾動非常緩慢。 – hyd00
更改偏移量時會發生什麼?滾動位置是否改變或停留在同一個地方? – Sebyddd