Ios 如何使用UICollectionView实现此单元动画
我正试着让你满意 对于列表,我想我可以使用Ios 如何使用UICollectionView实现此单元动画,ios,core-animation,Ios,Core Animation,我正试着让你满意 对于列表,我想我可以使用UICollectionView,但是动画部分似乎很棘手 这方面有什么想法吗?如果你指的是弹跳动画部分,那就不是很棘手了——苹果公司在同样的代码中为UIDynamics(仅限iOS7+)演示了这种行为 这里还有另一个与您的目标非常接近的示例: 在中间寻找一个动画例子。它甚至使用集合视图。正如@Kendall所说,您确实需要尝试UIDynamics 为了快速解决问题,我尝试了下面的代码。它工作得有点好,并且与您的代码相关。 我对表演一无所知。因此,它可能
UICollectionView
,但是动画部分似乎很棘手
这方面有什么想法吗?如果你指的是弹跳动画部分,那就不是很棘手了——苹果公司在同样的代码中为UIDynamics(仅限iOS7+)演示了这种行为 这里还有另一个与您的目标非常接近的示例:
在中间寻找一个动画例子。它甚至使用集合视图。
正如@Kendall所说,您确实需要尝试UIDynamics
为了快速解决问题,我尝试了下面的代码。它工作得有点好,并且与您的代码相关。
我对表演一无所知。因此,它可能会在您的项目中造成性能不足
这只是一个想法。如果它不适合您,请保持原样。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCollectionViewCell" forIndexPath:indexPath];
[UIView animateWithDuration:0.2 animations:^{
cell.transform = CGAffineTransformMakeTranslation(0.0, -50);
}];
[self delayBy:0.5 code:^{ // call block of code after time interval
[UIView animateWithDuration:0.3 animations:^{
cell.transform = CGAffineTransformIdentity;
}];
}];
return cell;
}
对于UICollectionViewCell的动画,请在代理方法中减速UICollectionView时设置单元格层的动画。每当用户开始滚动时,将可见单元格层移动到特定的“-y”位置,并在集合视图减速方法时设置动画并恢复y位置。。让我知道这是否有意义。这非常接近我所需要的,但我希望我的应用程序支持iOS6。如果我能找到iOS6的UIDynamic克隆,这将是完整的解决方案(UICollectionView+iOS6 Dynamic)。它可能是Box2d的包装。我将进一步研究。在CollectionView苹果的简单示例代码中使用此代码(使用此代码而不是块样式代码:[自执行选择器:@selector(restore:)withObject:cell afterDelay:0.5];)它在iOS 6中不起作用。在iOS 7中,它只对集合视图中插入的新单元格设置动画。由于我们在
cellforrowatinexpath:
方法中有此代码,因此不会对屏幕中的可见单元格调用它。为此,您需要在不重复使用的情况下创建单元格,或者需要在scrollViewDidScroll:
UIScrollView的委托方法中处理可见单元格的动画(UICollectionView
是UIScrollView
的子类)。希望你明白我说的话。