YOUPAILZLiveItemCell.m 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. //
  2. // YOUPAILZLiveItemCell.m
  3. // TIANYAN
  4. //
  5. // Created by CY on 2021/5/19.
  6. // Copyright © 2021 leo. All rights reserved.
  7. //
  8. #import "YOUPAILZLiveItemCell.h"
  9. #import "YYAnimatedImageView.h"
  10. @interface YOUPAILZLiveItemCell()
  11. @property (nonatomic, weak) UIImageView *youpaipavatarImgV; // 头像
  12. @property (nonatomic, weak) UIButton *youpaipleftTopBtn; // 左上角
  13. @property (nonatomic, weak) YYAnimatedImageView *youpaipiconAnimationImgV;
  14. @property (nonatomic, weak) UIImageView *youpaipiconImgV;
  15. @property (nonatomic, weak) UILabel *youpaiptextL;
  16. @property (nonatomic, weak) UILabel *youpaipnicknameL; // 昵称
  17. @property (nonatomic, weak) UIImageView *youpaipiconImgV1;
  18. /* 标题 */
  19. @property (strong, nonatomic) UILabel *youpaiptitleLabel;
  20. @end
  21. @implementation YOUPAILZLiveItemCell
  22. - (instancetype)initWithFrame:(CGRect)frame{
  23. if (self = [super initWithFrame:frame]) {
  24. [self youpaifinitUI];
  25. self.backgroundColor = [UIColor clearColor];
  26. }
  27. return self;
  28. }
  29. - (void)youpaifinitUI{
  30. UIImageView *youpaipavatarImgV = [[UIImageView alloc] init];
  31. youpaipavatarImgV.contentMode = UIViewContentModeScaleAspectFill;
  32. // youpaipavatarImgV.layer.cornerRadius = 8.0f;
  33. youpaipavatarImgV.clipsToBounds = YES;
  34. [self.contentView addSubview:youpaipavatarImgV];
  35. self.youpaipavatarImgV = youpaipavatarImgV;
  36. [youpaipavatarImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  37. make.left.top.bottom.right.offset(0.0f);
  38. }];
  39. UIButton *youpaipleftTopBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  40. youpaipleftTopBtn.frame = CGRectMake(0, 0, 56.0f, 20.0f);
  41. [LCTools clipCorner:UIRectCornerBottomRight View:youpaipleftTopBtn size:CGSizeMake(8.0f, 8.0f)];
  42. youpaipleftTopBtn.userInteractionEnabled = NO;
  43. [youpaipavatarImgV addSubview:youpaipleftTopBtn];
  44. self.youpaipleftTopBtn = youpaipleftTopBtn;
  45. [youpaipleftTopBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  46. make.top.left.offset(0.0f);
  47. make.size.mas_offset(CGSizeMake(56.0f, 20.0f));
  48. }];
  49. youpaipleftTopBtn.hidden = YES;
  50. YYAnimatedImageView *youpaipiconAnimationImgV = [[YYAnimatedImageView alloc] init];
  51. youpaipiconAnimationImgV.hidden = YES;
  52. [youpaipleftTopBtn addSubview:youpaipiconAnimationImgV];
  53. self.youpaipiconAnimationImgV = youpaipiconAnimationImgV;
  54. [youpaipiconAnimationImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  55. make.left.offset(5.0f);
  56. make.centerY.equalTo(youpaipleftTopBtn.mas_centerY);
  57. make.size.mas_offset(CGSizeMake(14.0f, 14.0f));
  58. }];
  59. UIImageView *youpaipiconImgV = [[UIImageView alloc] init];
  60. youpaipiconImgV.hidden = YES;
  61. [youpaipleftTopBtn addSubview:youpaipiconImgV];
  62. self.youpaipiconImgV = youpaipiconImgV;
  63. [youpaipiconImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  64. make.left.offset(8.0f);
  65. make.centerY.equalTo(youpaipleftTopBtn.mas_centerY);
  66. make.size.mas_offset(CGSizeMake(14.0f, 14.0f));
  67. }];
  68. UILabel *youpaiptextL = [[UILabel alloc] init];
  69. youpaiptextL.font = LCFont(10.0f);
  70. youpaiptextL.textColor = [UIColor whiteColor];
  71. [youpaipleftTopBtn addSubview:youpaiptextL];
  72. self.youpaiptextL = youpaiptextL;
  73. [youpaiptextL mas_makeConstraints:^(MASConstraintMaker *make) {
  74. make.left.equalTo(youpaipiconImgV.mas_right).offset(2.0f);
  75. make.centerY.equalTo(youpaipleftTopBtn.mas_centerY);
  76. }];
  77. UIView *footerV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.contentView.mj_w, 49.0f)];
  78. CAGradientLayer *gradientLayerBot = [LCTools getGradientLayerWithSize:footerV.mj_size twoColors:@[[[UIColor blackColor] colorWithAlphaComponent:0.0f],[[UIColor blackColor] colorWithAlphaComponent:0.3f]] gradientType:GradientTopToBottom];
  79. [footerV.layer addSublayer:gradientLayerBot];
  80. [youpaipavatarImgV addSubview:footerV];
  81. [footerV mas_makeConstraints:^(MASConstraintMaker *make) {
  82. make.left.bottom.right.offset(0.0f);
  83. make.height.offset(49.0f);
  84. }];
  85. UILabel *youpaipnicknameL = [[UILabel alloc] init];
  86. youpaipnicknameL.textColor = [UIColor whiteColor];
  87. youpaipnicknameL.font = LCFont(16);
  88. [footerV addSubview:youpaipnicknameL];
  89. self.youpaipnicknameL = youpaipnicknameL;
  90. [youpaipnicknameL mas_makeConstraints:^(MASConstraintMaker *make) {
  91. make.left.mas_equalTo(10.0f);
  92. make.top.mas_equalTo(7.0f);
  93. make.right.mas_equalTo(-10.0f);
  94. }];
  95. youpaipnicknameL.lineBreakMode =NSLineBreakByTruncatingTail;
  96. //标题
  97. UILabel *titleLabel = [[UILabel alloc] init];
  98. titleLabel.textColor = [UIColor whiteColor];
  99. titleLabel.font = LCFont(12);
  100. [footerV addSubview:titleLabel];
  101. self.youpaiptitleLabel = titleLabel;
  102. [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  103. make.left.mas_equalTo(10.0f);
  104. make.right.mas_equalTo(-10.0f);
  105. make.top.mas_equalTo(youpaipnicknameL.mas_bottom).offset(5);
  106. }];
  107. titleLabel.lineBreakMode =NSLineBreakByTruncatingTail;
  108. UIImageView *iconImgV1 = [[UIImageView alloc] init];
  109. iconImgV1.image = [UIImage imageNamed:@"vqu_images_L_live_zhibozhong"];
  110. iconImgV1.hidden = YES;
  111. [footerV addSubview:iconImgV1];
  112. self.youpaipiconImgV1 = iconImgV1;
  113. [iconImgV1 mas_makeConstraints:^(MASConstraintMaker *make) {
  114. make.right.offset(-8.0f);
  115. make.top.offset(14.0f);
  116. make.size.mas_offset(CGSizeMake(14.0f, 14.0f));
  117. }];
  118. }
  119. - (void)youpaifreloadWithModel:(YOUPAILZLiveListItemModel *)model style:(LZLiveItemCellStyle)style index:(NSInteger)index{
  120. self.youpaipiconAnimationImgV.hidden = YES;
  121. self.youpaipiconImgV.hidden = YES;
  122. // self.titleLabel.text = model.live_name;
  123. [self youpaifsetupShadowWithText:model.youpaiplive_name view:self.youpaiptitleLabel];
  124. if (model.youpaipanchor_name.length>0&&model.youpaiplive_name.length<=0) {
  125. self.youpaiptitleLabel.hidden = YES;
  126. [self.youpaipnicknameL mas_remakeConstraints:^(MASConstraintMaker *make) {
  127. make.left.mas_equalTo(10.0f);
  128. make.right.mas_equalTo(-10.0f);
  129. make.bottom.mas_equalTo(-10);
  130. }];
  131. }else if (model.youpaiplive_name.length>0&&model.youpaipanchor_name.length<=0){
  132. self.youpaipnicknameL.hidden = YES;
  133. [self.youpaiptitleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  134. make.left.mas_equalTo(10.0f);
  135. make.right.mas_equalTo(-10.0f);
  136. make.bottom.mas_equalTo(-10);
  137. }];
  138. }else{
  139. self.youpaiptitleLabel.hidden = NO;
  140. self.youpaipnicknameL.hidden = NO;
  141. }
  142. if (style == LZLiveItemCellStyleWithDefault) { // 默认样式
  143. UIImage *bgImage = [LCTools ColorImage:CGSizeMake(56.0f, 20.0f) FromColors:@[HexColorFromRGB(0xFF2ADD),HexColorFromRGB(0xFF6769)] ByGradientType:GradientLeftToRight];
  144. [self.youpaipleftTopBtn setBackgroundImage:bgImage forState:UIControlStateNormal];
  145. [self.youpaipleftTopBtn setBackgroundImage:bgImage forState:UIControlStateHighlighted];
  146. self.youpaipiconAnimationImgV.image = self.youpaipanimationImage;
  147. self.youpaiptextL.text = @"直播中";
  148. self.youpaipiconAnimationImgV.hidden = NO;
  149. [self.youpaiptextL mas_remakeConstraints:^(MASConstraintMaker *make) {
  150. make.left.equalTo(self.youpaipiconAnimationImgV.mas_right).offset(2.0f);
  151. make.centerY.equalTo(self.youpaipleftTopBtn.mas_centerY);
  152. }];
  153. }else{ // 排名样式
  154. self.youpaipleftTopBtn.hidden = YES;
  155. UIImage *bgImage = [LCTools ColorImage:CGSizeMake(56.0f, 20.0f) FromColors:@[HexColorFromRGB(0xFFB64C),HexColorFromRGB(0xFF6767)] ByGradientType:GradientLeftToRight];
  156. [self.youpaipleftTopBtn setBackgroundImage:bgImage forState:UIControlStateNormal];
  157. [self.youpaipleftTopBtn setBackgroundImage:bgImage forState:UIControlStateHighlighted];
  158. self.youpaipiconImgV.hidden = NO;
  159. self.youpaipiconImgV1.hidden = NO;
  160. self.youpaipiconImgV.image = [UIImage imageNamed:@"vqu_images_L_live_hot"];
  161. if(index < 5){
  162. self.youpaiptextL.text = [NSString stringWithFormat:@"No.%ld",index + 1];
  163. self.youpaipleftTopBtn.hidden = YES;
  164. }else{
  165. self.youpaiptextL.text = @"";
  166. }
  167. [self.youpaiptextL mas_remakeConstraints:^(MASConstraintMaker *make) {
  168. make.left.equalTo(self.youpaipiconImgV.mas_right).offset(2.0f);
  169. make.centerY.equalTo(self.youpaipleftTopBtn.mas_centerY);
  170. }];
  171. }
  172. [self.youpaipavatarImgV sd_setImageWithURL:[LCTools getImageUrlWithAddress:model.youpaipcover_img]];
  173. [self youpaifsetupShadowWithText:model.youpaipanchor_name view:self.youpaipnicknameL];
  174. }
  175. - (void)youpaifsetupShadowWithText:(NSString *)text view:(UILabel *)view{
  176. NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:text];
  177. NSShadow *shadow = [[NSShadow alloc]init];
  178. // shadow.shadowBlurRadius = 1.0;
  179. shadow.shadowOffset = CGSizeMake(1, 1.5f);
  180. shadow.shadowColor = [HexColorFromRGB(0x000000) colorWithAlphaComponent:0.2f];
  181. [attributedString addAttribute:NSShadowAttributeName value:shadow range:NSMakeRange(0, text.length)];
  182. view.attributedText = attributedString;
  183. }
  184. @end