SVGAHeader.m 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. //
  2. // SVGAHeader.m
  3. // UniversalApp
  4. //
  5. // Created by 志刚杨 on 2022/5/19.
  6. // Copyright © 2022 voidcat. All rights reserved.
  7. //
  8. #import "SVGAHeader.h"
  9. #import "SVGA.h"
  10. static SVGAParser *parser;
  11. @interface SVGAHeader ()
  12. @property (nonatomic, strong) SVGAPlayer *aPlayer;
  13. @end
  14. @implementation SVGAHeader
  15. {
  16. NSString *lastFace;
  17. }
  18. #pragma mark - LifeCycle
  19. - (void)dealloc {
  20. [self removeNotificationObserver];
  21. }
  22. - (instancetype)init {
  23. self = [super init];
  24. if (self) {
  25. self.userInteractionEnabled = NO;
  26. //设置view
  27. [self setupView];
  28. //请求数据
  29. [self requestData];
  30. //添加通知
  31. [self addNotificationObserver];
  32. }
  33. return self;
  34. }
  35. #pragma mark - View
  36. - (void)setupView {
  37. self.aPlayer = [[SVGAPlayer alloc] init];
  38. self.aPlayer.userInteractionEnabled = NO;
  39. // self.aPlayer.backgroundColor = KRedColor;
  40. [self addSubview:self.aPlayer];
  41. [self.aPlayer mas_makeConstraints:^(MASConstraintMaker *make) {
  42. make.width.equalTo(self);
  43. make.height.equalTo(self);
  44. make.left.equalTo(self);
  45. make.right.equalTo(self);
  46. }];
  47. }
  48. - (void)setHeaderUrl:(NSString *)headerUrl
  49. {
  50. _headerUrl = headerUrl;
  51. if (headerUrl.length) {
  52. self.aPlayer.hidden = NO;
  53. if([headerUrl containsString:@".svga"])
  54. {
  55. if(lastFace != headerUrl || lastFace == nil)
  56. {
  57. lastFace = headerUrl;
  58. parser = [[SVGAParser alloc] init];
  59. [parser parseWithURL:[NSURL URLWithString:headerUrl] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
  60. self.aPlayer.videoItem = videoItem;
  61. [self.aPlayer startAnimation];
  62. } failureBlock:^(NSError * _Nullable error) {
  63. }];
  64. }
  65. }
  66. }
  67. else
  68. {
  69. self.aPlayer.hidden = YES;
  70. }
  71. }
  72. #pragma mark - Network
  73. - (void)requestData {
  74. }
  75. #pragma mark- Delegate
  76. #pragma mark UITableDatasource & UITableviewDelegate
  77. #pragma mark - Private
  78. #pragma mark - Event
  79. #pragma mark - Public
  80. #pragma mark - NSNotificationCenter
  81. - (void)addNotificationObserver {
  82. }
  83. - (void)removeNotificationObserver {
  84. }
  85. #pragma mark - Setter
  86. #pragma mark - Getter
  87. @end