YOUPAILCRequestView.m 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. //
  2. // YOUPAILCRequestView.m
  3. // LiveChat
  4. //
  5. // Created by 张灿 on 2018/9/17.
  6. // Copyright © 2018年 caicai. All rights reserved.
  7. //
  8. #import "YOUPAILCRequestView.h"
  9. #import "YOUPAIHRAgeSexView.h"
  10. @implementation YOUPAILCRequestView
  11. - (instancetype)initWithModel:(YOUPAILCVideoChatModel*)callModel{
  12. if (self = [super init]) {
  13. self.youpaipcallModel = callModel;
  14. [self youpaifsetupView];
  15. }
  16. return self;
  17. }
  18. - (void)youpaifsetupView{
  19. self.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
  20. //模糊视图
  21. UIView *bgView = [UIView new];
  22. [self addSubview:bgView];
  23. [bgView mas_makeConstraints:^(MASConstraintMaker *make) {
  24. // make.center.mas_equalTo(0);
  25. // make.size.mas_equalTo(CGSizeMake(KScreenWidth-72, 380));
  26. make.edges.equalTo(self);
  27. }];
  28. bgView.backgroundColor = [UIColor clearColor];
  29. UIImageView* backImgView = [[UIImageView alloc]init];
  30. [backImgView setUserInteractionEnabled:YES];
  31. [bgView addSubview:backImgView];
  32. [backImgView mas_makeConstraints:^(MASConstraintMaker *make) {
  33. make.edges.equalTo(bgView);
  34. }];
  35. backImgView.contentMode = UIViewContentModeScaleAspectFill;
  36. NSURL *url = [LCTools getImageUrlWithAddress:self.youpaipcallModel.youpaipto_avatar];
  37. [backImgView sd_setImageWithURL:url placeholderImage:nil];
  38. [bgView addSubview:backImgView];
  39. [bgView addSubview:self.effectView];
  40. [self.effectView mas_makeConstraints:^(MASConstraintMaker *make) {
  41. make.edges.equalTo(self);
  42. }];
  43. UIImageView* logImgView = [[UIImageView alloc]init];
  44. [bgView addSubview:logImgView];
  45. [logImgView mas_makeConstraints:^(MASConstraintMaker *make) {
  46. make.width.height.mas_equalTo(WHScreenEqualWidth(92));
  47. make.centerX.equalTo(bgView);
  48. make.top.equalTo(bgView).offset(WHScreenEqualWidth(200));
  49. }];
  50. [logImgView.layer setCornerRadius:WHScreenEqualWidth(46)];
  51. [logImgView.layer setMasksToBounds:YES];
  52. logImgView.contentMode = UIViewContentModeScaleAspectFill;
  53. [logImgView sd_setImageWithURL:url placeholderImage:nil];
  54. //邀请女神通话
  55. UILabel *youpaipTopLabel = [UILabel new];
  56. [bgView addSubview:youpaipTopLabel];
  57. youpaipTopLabel.text = @"正在等待对方接受邀请…";
  58. youpaipTopLabel.textColor = LCWhiteColor;
  59. youpaipTopLabel.backgroundColor = UIColor.clearColor;
  60. youpaipTopLabel.layer.cornerRadius = 15;
  61. youpaipTopLabel.clipsToBounds = YES;
  62. youpaipTopLabel.font = [UIFont systemFontOfSize:14];
  63. youpaipTopLabel.textAlignment = NSTextAlignmentCenter;
  64. //昵称
  65. UILabel* nickLabel = [[UILabel alloc]init];
  66. [bgView addSubview:nickLabel];
  67. [nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  68. make.centerX.equalTo(bgView);
  69. make.top.equalTo(logImgView.mas_bottom).offset(WHScreenEqualWidth(16));
  70. }];
  71. nickLabel.text = self.youpaipcallModel.youpaipto_nickname;
  72. nickLabel.textAlignment = NSTextAlignmentCenter;
  73. nickLabel.textColor = [UIColor whiteColor];
  74. nickLabel.font = LCBoldFont(16);
  75. //性别
  76. YOUPAIHRAgeSexView *sexView = [YOUPAIHRAgeSexView new];
  77. [bgView addSubview:sexView];
  78. [sexView makeConstraints:^(MASConstraintMaker *make) {
  79. make.left.mas_equalTo(nickLabel.mas_right).offset(0);
  80. make.centerY.mas_equalTo(nickLabel);
  81. make.size.mas_equalTo(CGSizeMake(30, 14));
  82. }];
  83. [sexView youpaifreloadWith:self.youpaipcallModel.youpaipto_gender Age:self.youpaipcallModel.youpaipto_age];
  84. //向你发起 视频聊天
  85. // UILabel* callLabel = [[UILabel alloc]init];
  86. // [bgView addSubview:callLabel];
  87. // [callLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  88. // make.centerY.mas_equalTo(-30);
  89. // make.centerX.mas_equalTo(0);
  90. //
  91. // }];
  92. // callLabel.text = @"向她发起 视频聊天";
  93. // callLabel.textAlignment = NSTextAlignmentCenter;
  94. // callLabel.textColor = [UIColor whiteColor];
  95. // callLabel.font = [UIFont systemFontOfSize:14];
  96. //价格
  97. UILabel* priceLabel = [[UILabel alloc]init];
  98. priceLabel.textAlignment = NSTextAlignmentCenter;
  99. [bgView addSubview:priceLabel];
  100. [priceLabel makeConstraints:^(MASConstraintMaker *make) {
  101. make.centerX.equalTo(bgView).offset(WHScreenEqualWidth(14));
  102. make.top.mas_equalTo(nickLabel.mas_bottom).offset(3);
  103. }];
  104. //钻石
  105. UIImageView *zuanshiImage = [UIImageView new];
  106. [bgView addSubview:zuanshiImage];
  107. [zuanshiImage mas_makeConstraints:^(MASConstraintMaker *make) {
  108. make.right.equalTo(priceLabel.mas_left).offset(WHScreenEqualWidth(-10));
  109. make.centerY.equalTo(priceLabel);
  110. make.size.mas_equalTo(CGSizeMake(14, 14));
  111. }];
  112. zuanshiImage.image = [UIImage imageNamed:@"vqu_images_guard_zuanshi"];
  113. NSString *str1 = [NSString stringWithFormat:@" %@钻石/分钟",self.youpaipcallModel.youpaipskill.youpaipprice];
  114. priceLabel.attributedText = [LCTools setRichTextWithTitle:@"对方设置了" subTitle:str1 titleColor:[UIColor whiteColor] subTitleColor:MAINGRIDColor1 titleFontSize:12 subTitleFontSize:12];
  115. if (self.youpaipcallModel.youpaipto_gender==2) {
  116. zuanshiImage.hidden=YES;
  117. priceLabel.hidden=YES;
  118. }
  119. [bgView addSubview:self.cancelBtn];
  120. [self.cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  121. make.width.height.mas_equalTo(WHScreenEqualWidth(70.0f));
  122. make.centerX.equalTo(bgView);
  123. make.bottom.equalTo(bgView.mas_bottom).offset(WHScreenEqualWidth(-111));
  124. // make.bottom.mas_equalTo(WHScreenEqualWidth(-111);
  125. }];
  126. [youpaipTopLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  127. make.centerX.equalTo(bgView);
  128. make.bottom.equalTo(self.cancelBtn.mas_top).offset(-80);
  129. make.height.mas_equalTo(31);
  130. }];
  131. [bgView addSubview:self.cancelLab];
  132. [self.cancelLab mas_makeConstraints:^(MASConstraintMaker *make) {
  133. make.left.right.equalTo(self);
  134. make.top.equalTo(self.cancelBtn.mas_bottom).offset(WHScreenEqualWidth(12.0f));
  135. }];
  136. // //bottomView
  137. // UIView * bottomView = [UIView new];
  138. // [bgView addSubview:bottomView];
  139. // [bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
  140. // make.left.mas_equalTo(0);
  141. // make.right.mas_equalTo(0);
  142. // make.top.mas_equalTo(293);
  143. // make.bottom.mas_equalTo(0);
  144. // }];
  145. // bottomView.backgroundColor = [UIColor whiteColor];
  146. // bottomView.layer.cornerRadius = 12;
  147. // bottomView.clipsToBounds = YES;
  148. //
  149. //
  150. // UIButton* closeBtn = [[UIButton alloc]init];
  151. // [bottomView addSubview:closeBtn];
  152. // [closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  153. //
  154. // make.center.mas_equalTo(0);
  155. // make.size.mas_equalTo(CGSizeMake(KScreenWidth-72-62, 49));
  156. // }];
  157. // [closeBtn setBackgroundImage:[UIImage imageNamed:@"vqu_images_video_end_new"] forState:UIControlStateNormal];
  158. //
  159. // [closeBtn addTarget:self action:@selector(youpaifcancelClick) forControlEvents:(UIControlEventTouchUpInside)];
  160. }
  161. -(void)confirmClick{
  162. }
  163. - (void)youpaifcancelClick{
  164. if (self.youpaipdelegate && [self.youpaipdelegate respondsToSelector:@selector(youpaifcancelBtnClick)]) {
  165. [self.youpaipdelegate youpaifcancelBtnClick];
  166. }
  167. }
  168. - (void)youpaifcloseBtnClick{
  169. if (self.youpaipdelegate && [self.youpaipdelegate respondsToSelector:@selector(youpaifcloseRequestBtnClick)]) {
  170. [self.youpaipdelegate youpaifcloseRequestBtnClick];
  171. }
  172. }
  173. - (void)youpaiftimePadding{
  174. __block int timeout = 180;
  175. WeakSelf;
  176. dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
  177. dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
  178. self.youpaiptimer = timer;
  179. dispatch_source_set_timer(timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
  180. dispatch_source_set_event_handler(timer, ^{
  181. if(timeout<=0){
  182. dispatch_source_cancel(timer);
  183. dispatch_async(dispatch_get_main_queue(), ^{
  184. [self.youpaiptimeLabel removeFromSuperview];
  185. // if (self.delegate && [self.delegate respondsToSelector:@selector(timeOver)]) {
  186. // [self.delegate timeOver];
  187. // }
  188. });
  189. }else{
  190. dispatch_async(dispatch_get_main_queue(), ^{
  191. self.youpaiptimeLabel.text = [NSString stringWithFormat:@"%d",timeout];
  192. });
  193. timeout--;
  194. }
  195. });
  196. dispatch_resume(timer);
  197. }
  198. - (UIVisualEffectView *)effectView{
  199. if (_effectView == nil) {
  200. UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
  201. _effectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
  202. }
  203. return _effectView;
  204. }
  205. #pragma mark- get set
  206. - (UIButton *)cancelBtn{
  207. if(!_cancelBtn){
  208. _cancelBtn = [[UIButton alloc] init];
  209. [_cancelBtn setImage:[UIImage imageNamed:@"vqu_images_video_end_baibao"] forState:UIControlStateNormal];
  210. [_cancelBtn addTarget:self action:@selector(youpaifcancelClick) forControlEvents:UIControlEventTouchUpInside];
  211. }
  212. return _cancelBtn;
  213. }
  214. - (UILabel *)cancelLab{
  215. if(!_cancelLab){
  216. _cancelLab = [[UILabel alloc] init];
  217. [_cancelLab setText:@"取消"];
  218. [_cancelLab setTextColor:[UIColor whiteColor]];
  219. [_cancelLab setFont:[UIFont systemFontOfSize:14.0f]];
  220. [_cancelLab setTextAlignment:NSTextAlignmentCenter];
  221. }
  222. return _cancelLab;
  223. }
  224. @end