如何在 CollectionViewController 中为 gif 设置动画.. (Objective-C)

Posted

技术标签:

【中文标题】如何在 CollectionViewController 中为 gif 设置动画.. (Objective-C)【英文标题】:How do I animate gif inside CollectionViewController.. (Objective-C) 【发布时间】:2016-10-14 14:40:36 【问题描述】:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
              cellForItemAtIndexPath:(NSIndexPath *)indexPath



    [_keyboard.collectionView registerClass:[NibCell class] forCellWithReuseIdentifier:@"Cell"];


    static NSString *identifier = @"Cell";

    NibCell *cell = [self.keyboard.collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

    UIImageView * rampageGifImage = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, cell.frame.size.width, cell.frame.size.height)];


    [rampageGifImage setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@.gif",[rampageGif objectAtIndex:indexPath.row]]]];


    [cell.layer setCornerRadius:4];

    [cell addSubview:rampageGifImage];

    return cell;

【问题讨论】:

您不能在原生视图中使用 gif。为此使用 webView ,或者如果您真的想展示它,请使用一个打破图像并重新激活它的库。 github.com/Flipboard/FLAnimatedImage 【参考方案1】:

您可以通过在项目中添加来自 Github 的 SDWebImage 来使用 Gif 图像。

这样试试,

#import "UIImage+GIF.h"

_imageViewAnimatedGif.image= [UIImage sd_animatedGIFNamed:@"YOURGIF_IMAGE"];

希望这会对你有所帮助。

【讨论】:

访问此链接以获得更好的理解:github.com/rs/SDWebImage/blob/master/SDWebImage/UIImage%2BGIF.m 无论如何,我已经使用了来自 github 的 FLAnimatedImage .. 但问题是,由于内存使用量过多,应用程序正在崩溃......你能帮我解决这个问题吗,谢谢【参考方案2】:

Try it. It is small category that could loads animated GIF. Also, jpg, png, etc..

#import "ViewController.h"
#import "UIImage+Gif.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView1;
@property (weak, nonatomic) IBOutlet UIImageView *imageView2;
@end

@implementation ViewController

- (void)viewDidLoad 
    [super viewDidLoad];

    // Usage 1 : gifWidthData
    NSData *data = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"f1" withExtension:@"gif"]];

    self.imageView1.image = [UIImage gifWithData:data];

    // Usage 2 : gifWidthURL
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"f2" withExtension:@"gif"];
    self.imageView2.image = [UIImage gifWithURL:url];

【讨论】:

以上是关于如何在 CollectionViewController 中为 gif 设置动画.. (Objective-C)的主要内容,如果未能解决你的问题,请参考以下文章

如何在表单提交后保留文本(如何在提交后不删除自身?)

如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?

在 Avkit 中如何使用这三行代码,以及如何将音乐静音”

如何在 JDBC 中启动事务?

如何在 Fragment 中调用 OnActivityResult 以及它是如何工作的?

如何使用 Firebase 在 Web 上托管 Flutter?它的效果如何?