1.问题出在YYAnimatedImageView源码一个方法中

- (void)displayLayer:(CALayer *)layer {

if (_curFrame) {

layer.contents = (__bridge id)_curFrame.CGImage;

}

}

2.解决办法

第一种方法:修改源码方法

- (void)displayLayer:(CALayer *)layer {

if (_curFrame) {

layer.contents = (__bridge id)_curFrame.CGImage;

}else{

if (@available(iOS 14.0, *)) {

[super displayLayer:layer];

}

}

}

第二种方法:运行时

#import "YYAnimatedImageView+iOS14.h"

#import <objc/runtime.h>

@implementation YYAnimatedImageView (iOS14)

+ (void)load {

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

Method method1;

Method method2;

method1 = class_getInstanceMethod([self class], @selector(lz_displayLayer:));

method2 = class_getInstanceMethod([self class], @selector(displayLayer:));

method_exchangeImplementations(method1, method2);

});

}

- (void)lz_displayLayer:(CALayer *)layer {

Ivar ivar = class_getInstanceVariable(self.class, "_curFrame");

UIImage *_curFrame = object_getIvar(self, ivar);

if (_curFrame) {

layer.contents = (__bridge id)_curFrame.CGImage;

}else{

if (@available(iOS 14.0, *)) {

[super displayLayer:layer];

}

}

}

@end

最新文章

  1. Linux 文件系统分区基础
  2. Sequence Project Showplan Operator 序列映射运算符
  3. Linux编译安装源码包的流程
  4. WPF之MVVM(Step4)&mdash;&mdash;使用Prism(2)
  5. redis-persist上线
  6. 我的第二个app上线:术购管家
  7. MySQ binlog三种模式
  8. jg-table 过程2 ( jgTable )
  9. Android测试日志文件抓取与分析
  10. Nginx+IIS+Redis 处理Session共享问题 2
  11. 2734:十进制到八进制-poj
  12. uc/osⅡ/Ⅲ
  13. CentOS中service命令与/etc/init.d的关系以及centos7的变化
  14. 腾讯的模板引擎---artTemplate
  15. 【Unity Shader】(九) ------ 高级纹理之渲染纹理及镜子与玻璃效果的实现
  16. RabbitMQ与AMQP
  17. Linux 入门记录:四、Linux 系统常用命令
  18. 文法设计,对于void的修改
  19. C++_IO与文件1-输入与输出概述
  20. (转)list_orderby

热门文章

  1. centons 7 清机 脚本
  2. jmeter接口测试多数据组合登陆场景
  3. 简化的鸿蒙WiFi接口,仅需几行代码,简单易用!
  4. 基于gin的golang web开发:docker
  5. Mat使用详解
  6. 为什么不用UUID做主键?
  7. 【微信开发】缓存的asscess_token过期
  8. I/O中的 同步异步,阻塞非阻塞
  9. 更改ubuntu的分辨率
  10. 【五校联考1day2】JZOJ2020年8月12日提高组T1 对你的爱深不见底