gpt4 book ai didi

ios - iOS:UICollectionViewCell动画部分更改单元格内容

转载 作者:行者123 更新时间:2023-12-01 19:09:19 25 4
gpt4 key购买 nike

我有带单元格的UICollectionView。我需要在UIImageView中更改单元格图像。但是我不需要将其更改为一个单元,而是例如从一个单元更改为30。 (需要更改值的单元是更改。)
我想用动画制作。另外,我不想同时更改所有必须更改的单元格。我希望冷杉更改一些内容,在短时间内更改更多,依此类推,直到所有内容都被更改为止。可能吗?我可以做到这一点的任何例子吗?

我已经做出了一次可以全部更改的方法,但这不是我想要的。如果有人想看一下这段代码,我将在更新后将其发布在这里,目前我看不到发布它的理由(因为我认为这完全是一种不同的方式,可以显示同时更改和部分更改)。

最佳答案

一点也不难,实际上,这完全取决于您如何加载单元。例如,我刚刚做了一个简单的hack:
AnimatedCell.m
UICollectionViewCell子类

- (void)setImage:(UIImage*)image animatedWithDelay:(NSTimeInterval)delay
{
self.imageView.image = image;

// Apply the change immediately
if (delay < 0.01)
{
return;
}

self.imageView.alpha = 0.0;

[UIView animateWithDuration:0.5 delay:delay options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseInOut animations:^{
self.imageView.alpha = 1.0;
} completion:nil];
}
这是使用UIView便捷动画方法的简单淡入,以后您可能会想要一些更奇特的东西!无论如何,现在,我们需要设置内容并计算适当的延迟。
ViewController.m
符合UICollectionViewDataSource和UICollectionViewDelegate
@interface ViewController () <UICollectionViewDataSource, UICollectionViewDelegate>

@property (nonatomic,assign) CGFloat delay;

@end

@implementation ViewController

CGFloat const kDelayMinimum = 0.02;
CGFloat const kDelayIncrement = 0.01;

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
AnimatedCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collection.cell" forIndexPath:indexPath];

[cell setImage:[UIImage imageNamed:@"photo.png"] animatedWithDelay:self.delay];

self.delay += kDelayIncrement;

return cell;
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
self.delay = kDelayMinimum;
}

// <Rest of the code>

@end
确实,这是一个简单的技巧,我只是增加了所显示的每个单元的延迟,然后,当用户滚动时,延迟被重置为最小,否则,延迟将变得越来越大而无法控制。
您需要弄清楚如何正确地将其插入数据源,处理未加载图像的情况等,但这是工作的基础。

关于ios - iOS:UICollectionViewCell动画部分更改单元格内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17689374/

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