水平方向自动移动 UICollectionCells
Posted
技术标签:
【中文标题】水平方向自动移动 UICollectionCells【英文标题】:Automatically moving UICollectionCells in horizontal direction 【发布时间】:2013-08-12 11:48:59 【问题描述】:我正在尝试所有我喜欢使用 UIView 来制作动画但徒劳的东西。 我需要 CollectionView 单元格应该在每固定秒后自动水平滑动。
请帮我解决这个问题,因为这是我的应用等待发布的唯一原因。
我试过了,但没有成功。
-(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
if (collectionView == self.myCV)
myCollectionView *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MY_CELL" forIndexPath:indexPath];
if (cell == nil)
NSArray *xibPath = [[NSBundle mainBundle] loadNibNamed:@"myCollectionView" owner:self options:nil];
cell = [xibPath objectAtIndex:0];
// [myCV performBatchUpdates:^
// [self.myCV reloadData];
// completion: nil];
[UIView animateWithDuration:0.3f delay:0.0 options:0 animations:^
[self.myCV scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:indexPath.section inSection:0]
atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally
animated:NO];
completion:^(BOOL finished)
NSLog(@"Completed");
];
return cell;
谢谢, *最好的问候。*
【问题讨论】:
你的意思是最左边的单元格消失了,而新的单元格出现在右边? 你的 uicollectionview 中有多少个单元格可见? @paul:完全正确!!!如果您需要,我可以发送相同的演示,让您感到需要。 @iPatel :这些来自 webService。动态 但默认情况下如果你不滚动那么最大多少?? 【参考方案1】:如果您的移动代码有效,则在计时器功能中使用它,间隔为 1 秒
[NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(targetMethod)
userInfo:nil
repeats:YES];
-(void)targetMethod
[self.myCV scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:rowIndex inSection:0]
atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally
animated:YES];
rowIndex=(rowIndex<noOfRows-1)?(rowIndex+1):0;
或
这可以帮助你更好
https://***.com/a/13129472/1305001
【讨论】:
【参考方案2】:您应该将插入/删除/重新加载操作包装在 performBatchUpdates:completion:
块中。
例如:
[collectionView performBatchUpdates:^
[self.collectionView reloadData];
completion: nil];
然后您应该使用计时器定期调用此代码。这假设您还更新了数据源
【讨论】:
这可能会重新加载数据。我需要在其中包含一个计时器吗?我从来没有遇到过动画或计时器。请详细说明 嘿,我确实在我的演示应用程序中使用了上面的代码,但问题是应用程序根本没有启动。 您需要使用 NSTimer 定期调用此代码。它应该自动调用 collectionView:cellForItemAtIndexPath:以上是关于水平方向自动移动 UICollectionCells的主要内容,如果未能解决你的问题,请参考以下文章