HomeNewHeadView.m 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. //
  2. // HomeNewHeadView.m
  3. // KulexiuForTeacher
  4. //
  5. // Created by 王智 on 2022/7/25.
  6. //
  7. #import "HomeNewHeadView.h"
  8. #import "KSStarView.h"
  9. @interface HomeNewHeadView ()
  10. @property (nonatomic, copy) HomeHeadBlock callback;
  11. @property (weak, nonatomic) IBOutlet UIView *dotView;
  12. @property (weak, nonatomic) IBOutlet UIImageView *styleImage;
  13. @property (weak, nonatomic) IBOutlet UIImageView *videoImage;
  14. @property (weak, nonatomic) IBOutlet UIImageView *liveImage;
  15. @property (weak, nonatomic) IBOutlet UIImageView *musicImage;
  16. @property (weak, nonatomic) IBOutlet UILabel *badgeCountLabel;
  17. @property (weak, nonatomic) IBOutlet UILabel *failDescLabel;
  18. @property (weak, nonatomic) IBOutlet UIView *failedView;
  19. @property (weak, nonatomic) IBOutlet UIView *authView;
  20. @property (weak, nonatomic) IBOutlet UIImageView *authIcon;
  21. @property (weak, nonatomic) IBOutlet UILabel *authTitle;
  22. @property (weak, nonatomic) IBOutlet UIImageView *nextImage;
  23. @property (nonatomic, assign) BOOL hasAuth;
  24. @property (weak, nonatomic) IBOutlet UILabel *gradeTitleLabel;
  25. @property (weak, nonatomic) IBOutlet KSStarView *starView;
  26. @end
  27. @implementation HomeNewHeadView
  28. - (void)awakeFromNib {
  29. [super awakeFromNib];
  30. if (@available(iOS 11.0, *)) {
  31. _failedView.layer.cornerRadius = 8;
  32. _failedView.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner | kCALayerMaxXMaxYCorner;
  33. }
  34. else {
  35. UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:_failedView.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomRight cornerRadii:CGSizeMake(8, 8)];
  36. CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
  37. maskLayer.frame = _failedView.bounds;
  38. maskLayer.path = path.CGPath;
  39. _failedView.layer.mask = maskLayer;
  40. }
  41. _failedView.layer.masksToBounds = YES;
  42. [_failedView bringSubviewToFront:self.failDescLabel];
  43. _failedView.hidden = YES;
  44. self.starView.allowMark = NO;
  45. }
  46. + (instancetype)shareInstance {
  47. HomeNewHeadView *view = [[[NSBundle mainBundle] loadNibNamed:@"HomeNewHeadView" owner:nil options:nil] firstObject];
  48. return view;
  49. }
  50. - (void)configMessage:(TeacherInfo *)infoMessage {
  51. NSArray *tagArray = [infoMessage.tag componentsSeparatedByString:@","];
  52. if ([NSString isEmptyString:infoMessage.tag]) {
  53. self.badgeCountLabel.text = @"0/4";
  54. }
  55. else {
  56. self.badgeCountLabel.text = [NSString stringWithFormat:@"%zd/4",tagArray.count];
  57. }
  58. self.starView.rate = infoMessage.starGrade / 5.0f;
  59. [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_nomal"]];
  60. [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_nomal"]];
  61. [self.liveImage setImage:[UIImage imageNamed:@"mineLive_nomal"]];
  62. [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
  63. BOOL hasDegreeAuth = NO;
  64. BOOL hasTeacherAuth = NO;
  65. for (NSString *tagString in tagArray) {
  66. if ([tagString isEqualToString:@"STYLE"]) {
  67. [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];
  68. }
  69. else if ([tagString isEqualToString:@"VIDEO"]) {
  70. [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_active"]];
  71. }
  72. else if ([tagString isEqualToString:@"LIVE"]) {
  73. [self.liveImage setImage:[UIImage imageNamed:@"mineLive_active"]];
  74. }
  75. else if ([tagString isEqualToString:@"MUSIC"]) {
  76. [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_active"]];
  77. }
  78. else if ([tagString isEqualToString:@"DEGREE"]) { // 学历
  79. hasDegreeAuth = YES;
  80. }
  81. else if ([tagString isEqualToString:@"TEACHER"]) { // 学历
  82. hasTeacherAuth = YES;
  83. }
  84. }
  85. self.failedView.hidden = YES;
  86. // 认证状态
  87. self.hasAuth = NO;
  88. if ([infoMessage.entryStatus isEqualToString:@"PASS"]) { // 审核通过
  89. self.authView.backgroundColor = HexRGB(0xEFFBF9);
  90. [self.authIcon setImage:[UIImage imageNamed:@"auth_success_icon"]];
  91. self.authTitle.text = @"已认证";
  92. self.authTitle.textColor = THEMECOLOR;
  93. [self.nextImage setImage:[UIImage imageNamed:@"auth_next_green"]];
  94. self.hasAuth = YES;
  95. if (hasDegreeAuth && hasTeacherAuth) {
  96. self.dotView.hidden = YES;
  97. }
  98. else {
  99. self.dotView.hidden = NO;
  100. }
  101. }
  102. else if ([infoMessage.entryStatus isEqualToString:@"DOING"]) { // 认证审核中
  103. self.authView.backgroundColor = HexRGB(0xEFFBF9);
  104. [self.authIcon setImage:[UIImage imageNamed:@"authing_icon"]];
  105. self.authTitle.text = @"达人审核中";
  106. self.authTitle.textColor = THEMECOLOR;
  107. [self.nextImage setImage:[UIImage imageNamed:@"auth_next_green"]];
  108. }
  109. else if ([infoMessage.entryStatus isEqualToString:@"UNPASS"]) { // 审核失败
  110. self.authView.backgroundColor = THEMECOLOR;
  111. [self.authIcon setImage:[UIImage imageNamed:@"auth_nomal_icon"]];
  112. self.authTitle.text = @"达人认证";
  113. self.authTitle.textColor = [UIColor whiteColor];
  114. self.failedView.hidden = NO;
  115. [self.nextImage setImage:[UIImage imageNamed:@"auth_next_white"]];
  116. }
  117. else if ([infoMessage.entryStatus isEqualToString:@"UNPAALY"]) { // 未申请
  118. self.authView.backgroundColor = THEMECOLOR;
  119. [self.authIcon setImage:[UIImage imageNamed:@"auth_nomal_icon"]];
  120. self.authTitle.text = @"达人认证";
  121. self.authTitle.textColor = [UIColor whiteColor];
  122. [self.nextImage setImage:[UIImage imageNamed:@"auth_next_white"]];
  123. }
  124. }
  125. - (IBAction)authAction:(id)sender {
  126. if (self.callback) {
  127. if (self.hasAuth == NO) {
  128. self.callback(HOMEHEADACTION_AUTH);
  129. }
  130. else {
  131. if (self.dotView.isHidden) {
  132. self.callback(HOMEHEADACTION_EDUCATIONFINISH);
  133. }
  134. else {
  135. self.callback(HOMEHEADACTION_EDUCATION);
  136. }
  137. }
  138. }
  139. }
  140. - (IBAction)showDesc:(id)sender {
  141. if (self.callback) {
  142. self.callback(HOMEHEADACTION_DESC);
  143. }
  144. }
  145. - (void)authDetailAction:(HomeHeadBlock)callback {
  146. if (callback) {
  147. self.callback = callback;
  148. }
  149. }
  150. - (CGFloat)getViewHeight {
  151. return 80;
  152. }
  153. /*
  154. // Only override drawRect: if you perform custom drawing.
  155. // An empty implementation adversely affects performance during animation.
  156. - (void)drawRect:(CGRect)rect {
  157. // Drawing code
  158. }
  159. */
  160. @end