Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用UICollectionView实现此单元动画_Ios_Core Animation - Fatal编程技术网

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
的子类)。希望你明白我说的话。