YOUPAILZLiveCloseAudienceWindow.m 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. //
  2. // YOUPAILZLiveCloseAudienceWindow.m
  3. // TIANYAN
  4. //
  5. // Created by CY on 2021/5/26.
  6. // Copyright © 2021 leo. All rights reserved.
  7. //
  8. #import "YOUPAILZLiveCloseAudienceWindow.h"
  9. #import "YYAnimatedImageView.h"
  10. #import "YYImage.h"
  11. @interface YOUPAILZLiveCloseAudienceWindow ()
  12. @property (nonatomic, strong) YOUPAILZLiveCloseModel *youpaipmodel;
  13. @property (nonatomic, strong) UILabel *youpaipnicknameL;
  14. @property (nonatomic, weak) UIButton *youpaipfollowBtn; // 关注按钮
  15. @property (nonatomic, weak) UIView *youpaiprecommendBgV; // 推荐背景View
  16. @property(nonatomic,strong)UIButton *youpaiptransformBtn;//换一批
  17. @property(nonatomic,strong)UILabel *youpaiprecommendL;//
  18. @property(nonatomic,strong)UIView *youpaiplineV;//线
  19. @end
  20. @implementation YOUPAILZLiveCloseAudienceWindow
  21. - (instancetype)initWithModel:(YOUPAILZLiveCloseModel *)model{
  22. if (self = [super init]) {
  23. _youpaipmodel = model;
  24. }
  25. return self;
  26. }
  27. - (void)viewDidLoad {
  28. [super viewDidLoad];
  29. self.baseView.hidden = YES;
  30. [self youpaifinitUI];
  31. }
  32. - (void)youpaifinitUI{
  33. UIView *bgV = [[UIView alloc] init];
  34. bgV.backgroundColor = HexColorFromRGB(0x2A2935);
  35. bgV.layer.cornerRadius = 10.0f;
  36. bgV.clipsToBounds = YES;
  37. [self.view addSubview:bgV];
  38. [bgV mas_makeConstraints:^(MASConstraintMaker *make) {
  39. make.left.offset(32.0f);
  40. make.right.offset(-32.0f);
  41. make.centerY.equalTo(self.view.mas_centerY);
  42. }];
  43. UIButton *youpaipcloseBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  44. [youpaipcloseBtn setBackgroundImage:[UIImage imageNamed:@"vqu_images_L_live_window_close1"] forState:UIControlStateNormal];
  45. [youpaipcloseBtn setBackgroundImage:[UIImage imageNamed:@"vqu_images_L_live_window_close1"] forState:UIControlStateHighlighted];
  46. [youpaipcloseBtn addTarget:self action:@selector(youpaifcloseBtnClick) forControlEvents:UIControlEventTouchUpInside];
  47. [bgV addSubview:youpaipcloseBtn];
  48. [youpaipcloseBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  49. make.top.offset(7.0f);
  50. make.right.offset(-7.0f);
  51. make.size.mas_offset(CGSizeMake(28, 28));
  52. }];
  53. UILabel *titleL = [[UILabel alloc] init];
  54. titleL.font = LCBoldFont(19.0f);
  55. titleL.textColor = HexColorFromRGB(0xffffff);
  56. titleL.text = @"直播结束";
  57. [bgV addSubview:titleL];
  58. [titleL mas_makeConstraints:^(MASConstraintMaker *make) {
  59. make.top.offset(25.0f);
  60. make.centerX.equalTo(bgV.mas_centerX);
  61. }];
  62. UILabel *subTitleL = [[UILabel alloc] init];
  63. subTitleL.font = LCFont14;
  64. subTitleL.textColor = HexColorFromRGB(0x9F9DA5);
  65. subTitleL.text = @"关注TA订阅下次直播通知哦~";
  66. [bgV addSubview:subTitleL];
  67. [subTitleL mas_makeConstraints:^(MASConstraintMaker *make) {
  68. make.top.equalTo(titleL.mas_bottom).offset(7.0f);
  69. make.centerX.equalTo(bgV.mas_centerX);
  70. }];
  71. UIImageView *youpaipavatarImgV = [[UIImageView alloc] init];
  72. youpaipavatarImgV.contentMode = UIViewContentModeScaleAspectFill;
  73. youpaipavatarImgV.layer.cornerRadius = 32.0f;
  74. youpaipavatarImgV.clipsToBounds = YES;
  75. [youpaipavatarImgV sd_setImageWithURL:[LCTools getImageUrlWithAddress:self.youpaipmodel.youpaipavatar]];
  76. [bgV addSubview:youpaipavatarImgV];
  77. [youpaipavatarImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  78. make.size.mas_offset(CGSizeMake(64.0f, 64.0f));
  79. make.centerX.equalTo(bgV.mas_centerX);
  80. make.top.equalTo(subTitleL.mas_bottom).offset(25.0f);
  81. }];
  82. UILabel *youpaipnicknameL = [[UILabel alloc] init];
  83. youpaipnicknameL.font = LCFont16;
  84. youpaipnicknameL.textColor = HexColorFromRGB(0xffffff);
  85. youpaipnicknameL.text = self.youpaipmodel.youpaipanchor_name;
  86. [bgV addSubview:youpaipnicknameL];
  87. self.youpaipnicknameL = youpaipnicknameL;
  88. [youpaipnicknameL mas_makeConstraints:^(MASConstraintMaker *make) {
  89. make.top.equalTo(youpaipavatarImgV.mas_bottom).offset(7.0f);
  90. make.centerX.equalTo(bgV.mas_centerX);
  91. }];
  92. UIButton *youpaipfollowBtn = nil;
  93. if ([self.youpaipmodel.youpaipis_follow integerValue] == 0) {
  94. youpaipfollowBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  95. youpaipfollowBtn.titleLabel.font = LCFont17;
  96. youpaipfollowBtn.layer.cornerRadius = 24;
  97. youpaipfollowBtn.clipsToBounds = YES;
  98. [youpaipfollowBtn setTitle:@"关注" forState:0];
  99. [youpaipfollowBtn addTarget:self action:@selector(youpaiffollowBtnClick) forControlEvents:UIControlEventTouchUpInside];
  100. [youpaipfollowBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  101. [youpaipfollowBtn setBackgroundImage:[LCTools ColorImage:CGSizeMake(KScreenWidth - 120.0f, 48.0f) FromColors:@[ZYGradientOneColor,ZYGradientTwoColor] ByGradientType:(GradientLeftToRight)] forState:(UIControlStateNormal)];
  102. [bgV addSubview:youpaipfollowBtn];
  103. self.youpaipfollowBtn = youpaipfollowBtn;
  104. // [self reloadFollowBtnStyle];
  105. [youpaipfollowBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  106. make.left.offset(28.0f);
  107. make.right.offset(-28.0f);
  108. make.height.offset(48.0f);
  109. make.top.equalTo(youpaipnicknameL.mas_bottom).offset(20.0f);
  110. }];
  111. }
  112. UIView *youpaiplineV = [[UIView alloc] init];
  113. self.youpaiplineV = youpaiplineV;
  114. [youpaiplineV.layer addSublayer:[self youpaifdrawDashedLine]];
  115. [bgV addSubview:youpaiplineV];
  116. [youpaiplineV mas_makeConstraints:^(MASConstraintMaker *make) {
  117. make.left.offset(36.0f);
  118. make.right.offset(-36.0f);
  119. if (youpaipfollowBtn == nil) {
  120. make.top.equalTo(youpaipnicknameL.mas_bottom).offset(33.0f);
  121. }else{
  122. make.top.equalTo(youpaipfollowBtn.mas_bottom).offset(33.0f);
  123. }
  124. make.height.offset(0.5f);
  125. }];
  126. UILabel *youpaiprecommendL = [[UILabel alloc] init];
  127. self.youpaiprecommendL =youpaiprecommendL;
  128. youpaiprecommendL.font = LCFont12;
  129. youpaiprecommendL.textColor = HexColorFromRGB(0x9F9DA5);
  130. youpaiprecommendL.backgroundColor = HexColorFromRGB(0x2A2935);
  131. youpaiprecommendL.text = @" 为您推荐,在线直播 ";
  132. [bgV addSubview:youpaiprecommendL];
  133. [youpaiprecommendL mas_makeConstraints:^(MASConstraintMaker *make) {
  134. if (youpaipfollowBtn == nil) {
  135. make.top.equalTo(youpaipnicknameL.mas_bottom).offset(25.0f);
  136. }else{
  137. make.top.equalTo(youpaipfollowBtn.mas_bottom).offset(25.0f);
  138. }
  139. make.centerX.equalTo(bgV.mas_centerX);
  140. }];
  141. UIView *youpaiprecommendBgV = [[UIView alloc] init];
  142. [bgV addSubview:youpaiprecommendBgV];
  143. self.youpaiprecommendBgV = youpaiprecommendBgV;
  144. [youpaiprecommendBgV mas_makeConstraints:^(MASConstraintMaker *make) {
  145. make.centerX.equalTo(bgV.mas_centerX);
  146. make.top.equalTo(youpaiprecommendL.mas_bottom).offset(25.0f);
  147. make.height.offset((KScreenWidth - 102.0f) / 3.0f);
  148. }];
  149. UIButton *transformBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  150. self.youpaiptransformBtn = transformBtn;
  151. transformBtn.titleLabel.font = LCFont12;
  152. transformBtn.layer.cornerRadius = 13.0f;
  153. transformBtn.clipsToBounds = YES;
  154. [transformBtn setTitle:@"换一批" forState:0];
  155. [transformBtn addTarget:self action:@selector(youpaiftransformBtnClick) forControlEvents:UIControlEventTouchUpInside];
  156. [transformBtn setTitleColor:HexColorFromRGB(0xffffff) forState:UIControlStateNormal];
  157. transformBtn.layer.borderColor = HexColorFromRGB(0xffffff).CGColor;
  158. transformBtn.layer.borderWidth = 0.5f;
  159. [bgV addSubview:transformBtn];
  160. [transformBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  161. make.bottom.offset(-25.0f);
  162. make.centerX.equalTo(bgV.mas_centerX);
  163. make.top.equalTo(youpaiprecommendBgV.mas_bottom).offset(20.0f);
  164. make.size.mas_offset(CGSizeMake(69.0f, 26.0f));
  165. }];
  166. transformBtn.hidden = YES;
  167. [self youpaifcreateRecommendBtn];
  168. }
  169. - (void)youpaifcreateRecommendBtn{
  170. for (UIView *view in self.youpaiprecommendBgV.subviews) {
  171. [view removeFromSuperview];
  172. }
  173. CGFloat width = (KScreenWidth - 102.0f) / 3.0f;
  174. if (self.youpaipmodel.youpaiplive.count<=0) {
  175. self.youpaiprecommendL.hidden = YES;
  176. self.youpaiptransformBtn.hidden = YES;
  177. self.youpaiplineV.hidden = YES;
  178. [self.youpaipfollowBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
  179. make.left.offset(28.0f);
  180. make.right.offset(-28.0f);
  181. make.height.offset(48.0f);
  182. make.top.equalTo(self.youpaipnicknameL.mas_bottom).offset(20.0f);
  183. make.bottom.offset(-25.0f);
  184. }];
  185. }else{
  186. self.youpaiprecommendL.hidden = NO;
  187. self.youpaiptransformBtn.hidden = NO;
  188. self.youpaiplineV.hidden = NO;
  189. [self.youpaipfollowBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
  190. make.left.offset(28.0f);
  191. make.right.offset(-28.0f);
  192. make.height.offset(48.0f);
  193. make.top.equalTo(self.youpaipnicknameL.mas_bottom).offset(20.0f);
  194. }];
  195. }
  196. for (NSInteger i = 0; i < self.youpaipmodel.youpaiplive.count; i ++) {
  197. YOUPAILZLiveListItemModel *itemModel = self.youpaipmodel.youpaiplive[i];
  198. UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
  199. btn.imageView.contentMode = UIViewContentModeScaleAspectFill;
  200. btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
  201. btn.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
  202. btn.layer.cornerRadius = 8.0f;
  203. btn.clipsToBounds = YES;
  204. btn.contentMode = UIViewContentModeScaleAspectFill;
  205. [btn sd_setImageWithURL:[LCTools getImageUrlWithAddress:itemModel.youpaipcover_img] forState:UIControlStateNormal];
  206. btn.tag = i;
  207. [btn addTarget:self action:@selector(youpaifitemClick:) forControlEvents:UIControlEventTouchUpInside];
  208. [self.youpaiprecommendBgV addSubview:btn];
  209. [btn mas_makeConstraints:^(MASConstraintMaker *make) {
  210. make.left.offset(i * width + i * 4.0f);
  211. make.top.bottom.offset(0.0f);
  212. make.width.offset(width);
  213. if (i == self.youpaipmodel.youpaiplive.count - 1) {
  214. make.right.offset(0.0f);
  215. }
  216. }];
  217. UIButton *youpaipleftTopBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  218. youpaipleftTopBtn.userInteractionEnabled = NO;
  219. youpaipleftTopBtn.frame = CGRectMake(0, 0, 41.0f, 14.0f);
  220. UIImage *bgImage = [LCTools ColorImage:youpaipleftTopBtn.mj_size FromColors:@[HexColorFromRGB(0xFF2ADD),HexColorFromRGB(0xFF6769)] ByGradientType:GradientLeftToRight];
  221. [youpaipleftTopBtn setBackgroundImage:bgImage forState:UIControlStateNormal];
  222. [youpaipleftTopBtn setBackgroundImage:bgImage forState:UIControlStateHighlighted];
  223. [LCTools clipCorner:UIRectCornerBottomRight View:youpaipleftTopBtn size:CGSizeMake(8.0f, 8.0f)];
  224. youpaipleftTopBtn.userInteractionEnabled = NO;
  225. [btn addSubview:youpaipleftTopBtn];
  226. [youpaipleftTopBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  227. make.top.left.offset(0.0f);
  228. make.size.mas_offset(CGSizeMake(41.0f, 14.0f));
  229. }];
  230. NSString *path = [[NSBundle mainBundle] pathForResource:@"ic_live_zhibozhong_28" ofType:@"gif"];
  231. YYAnimatedImageView *youpaipiconImgV = [[YYAnimatedImageView alloc] init];
  232. youpaipiconImgV.image = [YYImage imageWithData:[NSData dataWithContentsOfFile:path]];
  233. [youpaipleftTopBtn addSubview:youpaipiconImgV];
  234. [youpaipiconImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  235. make.left.offset(3.0f);
  236. make.centerY.equalTo(youpaipleftTopBtn.mas_centerY);
  237. make.size.mas_offset(CGSizeMake(9.5f, 9.5f));
  238. }];
  239. UILabel *youpaiptextL = [[UILabel alloc] init];
  240. youpaiptextL.font = LCFont(8.0f);
  241. youpaiptextL.textColor = [UIColor whiteColor];
  242. youpaiptextL.text = @"直播中";
  243. [youpaipleftTopBtn addSubview:youpaiptextL];
  244. [youpaiptextL mas_makeConstraints:^(MASConstraintMaker *make) {
  245. make.left.equalTo(youpaipiconImgV.mas_right).offset(1.5f);
  246. make.centerY.equalTo(youpaipleftTopBtn.mas_centerY);
  247. }];
  248. UIView *footerV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, 20.0f)];
  249. CAGradientLayer *gradientLayerBot = [CAGradientLayer layer];
  250. gradientLayerBot.frame = footerV.bounds;
  251. //设置渐变颜色数组,可以加透明度的渐变
  252. gradientLayerBot.colors = @[(__bridge id)[[UIColor whiteColor] colorWithAlphaComponent:0.0f].CGColor,(__bridge id)[[UIColor blackColor] colorWithAlphaComponent:0.1f].CGColor];
  253. //设置渐变区域的起始和终止位置(范围为0-1)
  254. gradientLayerBot.startPoint = CGPointMake(0, 0.5f);
  255. gradientLayerBot.endPoint = CGPointMake(0, 1);
  256. [footerV.layer addSublayer:gradientLayerBot];
  257. [btn addSubview:footerV];
  258. [footerV mas_makeConstraints:^(MASConstraintMaker *make) {
  259. make.left.bottom.right.offset(0.0f);
  260. make.height.offset(44.0f);
  261. }];
  262. UILabel *youpaipnicknameL = [[UILabel alloc] init];
  263. youpaipnicknameL.textColor = [UIColor whiteColor];
  264. youpaipnicknameL.font = LCFont(10);
  265. youpaipnicknameL.text = itemModel.youpaipanchor_name;
  266. [footerV addSubview:youpaipnicknameL];
  267. [youpaipnicknameL mas_makeConstraints:^(MASConstraintMaker *make) {
  268. make.left.offset(5.0f);
  269. make.bottom.offset(-3.0f);
  270. make.right.offset(-5.0f);
  271. }];
  272. }
  273. }
  274. - (void)youpaiffollowBtnClick{
  275. [self.youpaipfollowBtn setTitle:@"已关注" forState:UIControlStateNormal];
  276. self.youpaipfollowBtn.userInteractionEnabled = NO;
  277. [self.youpaipfollowBtn setBackgroundImage:nil forState:(UIControlStateNormal)];
  278. self.youpaipfollowBtn.backgroundColor = HexColorFromRGB(0xD8D8D8);
  279. [LCCommonHttp followUserId:self.youpaipmodel.youpaipanchor_id];
  280. }
  281. - (void)youpaiftransformBtnClick{
  282. @weakify(self);
  283. [LCHttpHelper requestWithURLString:GetUserCloseLive parameters:@{@"is_refresh_rand":@(1)} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  284. @strongify(self);
  285. NSDictionary* dict = (NSDictionary*)responseObject;
  286. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  287. if (code==0) {//成功
  288. YOUPAILZLiveCloseModel *model = [YOUPAILZLiveCloseModel mj_objectWithKeyValues:[dict objectForKey:@"data"]];
  289. self.youpaipmodel = model;
  290. [self youpaifcreateRecommendBtn];
  291. }else{
  292. [ZCHUDHelper showTitle:[dict objectForKey:@"message"]];
  293. }
  294. } failure:^(NSError *error) {
  295. [ZCHUDHelper showTitle:error.localizedDescription];
  296. }];
  297. }
  298. - (void)youpaifitemClick:(UIButton *)sender{
  299. if (self.youpaipitemClickBlock != nil) {
  300. self.youpaipitemClickBlock(self.youpaipmodel.youpaiplive[sender.tag]);
  301. }
  302. [self dismissViewControllerAnimated:NO completion:nil];
  303. }
  304. - (void)youpaifcloseBtnClick{
  305. if (self.youpaipcloseBlock != nil) {
  306. self.youpaipcloseBlock();
  307. }
  308. [self dismissViewControllerAnimated:NO completion:nil];
  309. }
  310. /// 虚线
  311. - (CAShapeLayer *)youpaifdrawDashedLine{
  312. CAShapeLayer *shapeLayer = [CAShapeLayer layer];
  313. [shapeLayer setBounds:self.view.bounds];
  314. [shapeLayer setPosition:self.view.center];
  315. [shapeLayer setFillColor:[[UIColor clearColor] CGColor]];
  316. // 设置虚线颜色为blackColor
  317. [shapeLayer setStrokeColor:[HexColorFromRGB(0x999999) CGColor]];
  318. // 3.0f设置虚线的宽度
  319. [shapeLayer setLineWidth:0.5f];
  320. [shapeLayer setLineJoin:kCALineJoinRound];
  321. // 3=线的宽度 1=每条线的间距
  322. [shapeLayer setLineDashPattern:
  323. [NSArray arrayWithObjects:[NSNumber numberWithInt:5.0f],
  324. [NSNumber numberWithInt:1.0f],nil]];
  325. // Setup the path
  326. CGMutablePathRef path = CGPathCreateMutable();
  327. CGPathMoveToPoint(path, NULL, 0, 0);
  328. CGPathAddLineToPoint(path, NULL, KScreenWidth - 136.0f,0);
  329. [shapeLayer setPath:path];
  330. CGPathRelease(path);
  331. return shapeLayer;
  332. }
  333. @end