我正在尝试使用UIView制作动画但是徒劳无功的所有东西。 我需要CollectionView Cells应该在每个固定的秒后自动水平滑动。
请帮我解决这个问题,因为这是我的应用等待发布的唯一原因。
我试过这个但是徒劳无功。
-(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;
}
谢谢, * 最诚挚的问候。 *
答案 0 :(得分:3)
如果你的移动代码有效,那么在定时器功能中使用它,间隔为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;
}
OR
这可以帮助你更好
答案 1 :(得分:0)
您应该在performBatchUpdates:completion:
块中包装插入/删除/重新加载操作。
例如:
[collectionView performBatchUpdates:^{
[self.collectionView reloadData];
} completion: nil];
然后您应该使用计时器定期调用此代码。这假设您还更新了数据源