ios加载gif图片

 CGImageSourceRef gif;                // 保存gif动画
  NSDictionary *gifProperties;        // 保存gif动画属性
  size_t index;                                // gif动画播放开始的帧序号
    size_t count;                             // gif动画的总帧数

    NSTimer *timer;                       // 播放gif动画所使用的timer

initWithFrame:(NSData*)data{

 gifProperties = [NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:0] forKey:(NSString *)kCGImagePropertyGIFLoopCount]
                                                    forKey:(NSString *)kCGImagePropertyGIFDictionary];
  gif = CGImageSourceCreateWithData((CFDataRef)data, (CFDictionaryRef)gifProperties);

  count =CGImageSourceGetCount(gif);

  timer = [NSTimer scheduledTimerWithTimeInterval:0.05  target:self selector:@selector(play) userInfo:nil repeats:YES];

}


播放

play{

    index ++;
    index = index%count;
    CGImageRef ref = CGImageSourceCreateImageAtIndex(gif, index, (CFDictionaryRef)gifProperties);
    self.layer.contents = (__bridge id)ref;
    CFRelease(ref);

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值