gpt4 book ai didi

ios - UICollectionview 非并行动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:07:23 26 4
gpt4 key购买 nike

我的问题简而言之:this effect on UICollectionView怎么能能实现吗?

我有一个带有类似于网格布局的自定义布局的 Collection View 。现在,当我进入 collectionview Controller 时,我希望单元格有一个漂亮的动画。

我知道我可以实现 - initialLayoutAttributesForAppearingItemAtIndexPath: 等并在 Collection View 上调用 performBatchUpdates。现在,当我这样做时,所有的动画都是并行执行的(比如调用 UIView animate)。在很多应用程序中,我看到的效果不是像 iPhone 上的 philips hue 应用程序那样并行完成的,效果可以在顶部发布的电影中看到。我能想到的一件事是,不是在此处插入所有对象,而是单独添加行,因此,例如,所有行都循环并在一定间隔后彼此相邻分派(dispatch)。

无论如何,如果有人可以提示我实现这种效果的最佳方法是什么,或者知道可以做类似事情的示例,我将非常感激。

最佳答案

enter image description here

这是一种方法:(写完后我觉得有点脏......但它有效)

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
myCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
cell.myPic.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",indexPath.row]];

CGRect frame = cell.myPic.frame;

frame.origin.y = cell.myPic.frame.origin.y + 40;
cell.myPic.frame = frame;
cell.myPic.alpha = 0;

[cells addObject:cell];

return cell;
}

- (IBAction)Run:(UIButton *)sender
{
for (int i=0; i<[cells count]; i++)
{
myCell *cell = [cells objectAtIndex:i];

[UIView animateWithDuration:0.15 animations:^() {
CGRect frame = cell.myPic.frame;
frame.size.width = 80;
frame.origin.y = cell.myPic.frame.origin.y - 40;
cell.myPic.frame = frame;
cell.myPic.alpha = 1;

}completion:^(BOOL finished){}];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.05]];
}
}

关于ios - UICollectionview 非并行动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20677054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com