YYAnimatedImageView+RQExtension.m 985 B

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // YYAnimatedImageView+RQExtension.m
  3. // XinShouJiaDao
  4. //
  5. // Created by 张嵘 on 2021/7/14.
  6. // Copyright © 2021 JCZ. All rights reserved.
  7. //
  8. #import "YYAnimatedImageView+RQExtension.h"
  9. @implementation YYAnimatedImageView (RQExtension)
  10. + (void)load {
  11. // 获取系统的对象方法
  12. Method displayLayerMethod = class_getInstanceMethod(self, @selector(displayLayer:));
  13. // 获取自己定义的对象方法
  14. Method displayLayerNewMethod = class_getInstanceMethod(self, @selector(displayLayerNew:));
  15. // 方法交换
  16. method_exchangeImplementations(displayLayerMethod, displayLayerNewMethod);
  17. }
  18. - (void)displayLayerNew:(CALayer *)layer {
  19. Ivar imgIvar = class_getInstanceVariable([self class], "_curFrame");
  20. UIImage *img = object_getIvar(self, imgIvar);
  21. if (img) {
  22. layer.contents = (__bridge id)img.CGImage;
  23. } else {
  24. if (@available(iOS 14.0, *)) {
  25. [super displayLayer:layer];
  26. }
  27. }
  28. }
  29. @end