YOUPAIHRChatRoomHeaderView.m 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. //
  2. // YOUPAIHRChatRoomHeaderView.m
  3. // VQU
  4. //
  5. // Created by xiaohaoran on 2021/10/29.
  6. // Copyright © 2021 MS. All rights reserved.
  7. //
  8. #import "YOUPAIHRChatRoomHeaderView.h"
  9. #import "YOUPAIHRChatRoomHeaderCell.h"
  10. #import "YOUPAIHRChatRoomGiftModel.h"
  11. @interface YOUPAIHRChatRoomHeaderView ()<UICollectionViewDelegate,UICollectionViewDataSource>
  12. @property(nonatomic,strong)UICollectionView *youpaipcollectionView;
  13. @property(nonatomic,strong)UIButton *youpaipmicroBtn;
  14. /* 是否显示悄悄送礼 */
  15. @property (assign, nonatomic) NSInteger youpaipsend_gift_hide;
  16. @end
  17. @implementation YOUPAIHRChatRoomHeaderView
  18. -(instancetype)initWithFrame:(CGRect)frame send_gift_hide:(NSInteger)send_gift_hide{
  19. if (self = [super initWithFrame:frame]) {
  20. self.youpaipsend_gift_hide = send_gift_hide;
  21. [self youpaifsetSubView];
  22. }
  23. return self;
  24. }
  25. -(void)youpaifqiaoqiaoBtnClick:(UIButton*)sender{
  26. sender.selected = !sender.selected;
  27. NSString *switchType = sender.selected ? @"1" : @"2";
  28. [LCHttpHelper requestWithURLString:NobleSetting parameters:@{@"send_gift_hide":switchType} needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  29. if (responseObject) {
  30. if ([responseObject[@"code"] intValue]== 0) {
  31. }
  32. [ZCHUDHelper showTitle:responseObject[@"message"]];
  33. }
  34. } failure:^(NSError *error) {
  35. [ZCHUDHelper showTitle:error.localizedDescription];
  36. }];
  37. }
  38. -(void)youpaifmicroBtnClick:(UIButton*)sender{
  39. sender.selected = !sender.selected;
  40. if (sender.selected) {
  41. for (YOUPAILZChatRoomSeatModel *model in self.youpaipseats) {
  42. model.youpaipisSelected = YES;
  43. }
  44. }else{
  45. for (YOUPAILZChatRoomSeatModel *model in self.youpaipseats) {
  46. model.youpaipisSelected = NO;
  47. }
  48. }
  49. [self.youpaipcollectionView reloadData];
  50. }
  51. - (void)youpaifverityAllSelectState {
  52. BOOL youpaipisSelectedAll = YES;
  53. if (self.youpaipseats.count == 0) {
  54. youpaipisSelectedAll = NO;
  55. }
  56. for (YOUPAILZChatRoomSeatModel *model in self.youpaipseats) {
  57. if (model.youpaipisSelected == NO) {
  58. youpaipisSelectedAll = NO;
  59. break;
  60. }
  61. }
  62. self.youpaipmicroBtn.selected = youpaipisSelectedAll;
  63. }
  64. -(void)youpaifsetSubView{
  65. //送给
  66. UILabel *sendLabel = [UILabel new];
  67. [self addSubview:sendLabel];
  68. [sendLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  69. make.left.mas_equalTo(14);
  70. make.centerY.mas_equalTo(0);
  71. make.width.mas_equalTo(25);
  72. }];
  73. sendLabel.text = @"送给";
  74. sendLabel.textColor = HexColorFromRGB(0x9F9DA5);
  75. sendLabel.font = [UIFont systemFontOfSize:10];
  76. //用户头像collectionView
  77. UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
  78. UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
  79. self.youpaipcollectionView = collectionView;
  80. [self addSubview:collectionView];
  81. [collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
  82. make.top.mas_equalTo(0);
  83. make.left.mas_offset(39);
  84. make.width.mas_offset(KScreenWidth-14-25-ScaleSize(148));
  85. make.bottom.mas_offset(0.f);
  86. }];
  87. [layout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
  88. self.youpaipcollectionView.backgroundColor = LCBkgColor;
  89. self.youpaipcollectionView.showsHorizontalScrollIndicator = NO;
  90. self.youpaipcollectionView.showsVerticalScrollIndicator = NO;
  91. self.youpaipcollectionView.scrollEnabled = YES;
  92. self.youpaipcollectionView.delegate = self;
  93. self.youpaipcollectionView.dataSource = self;
  94. //悄悄送礼和全麦按钮
  95. UIView *selectView = [UIView new];
  96. [self addSubview:selectView];
  97. [selectView mas_makeConstraints:^(MASConstraintMaker *make) {
  98. make.right.mas_equalTo(0);
  99. make.top.mas_equalTo(0);
  100. make.bottom.mas_equalTo(0);
  101. make.width.mas_equalTo(ScaleSize(148));
  102. }];
  103. selectView.backgroundColor = LCBkgColor;
  104. //全麦按钮
  105. UIButton *youpaipmicroBtn = [UIButton new];
  106. self.youpaipmicroBtn = youpaipmicroBtn;
  107. [selectView addSubview:youpaipmicroBtn];
  108. [youpaipmicroBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  109. make.right.mas_equalTo(0);
  110. make.top.mas_equalTo(0);
  111. make.bottom.mas_equalTo(0);
  112. make.width.mas_equalTo(ScaleSize(59));
  113. }];
  114. [youpaipmicroBtn setTitle:@"全麦 " forState:UIControlStateNormal];
  115. [youpaipmicroBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  116. youpaipmicroBtn.titleLabel.font = [UIFont systemFontOfSize:12];
  117. [youpaipmicroBtn setImage:[UIImage imageNamed:@"vqu_images_gift_off"] forState:UIControlStateNormal];
  118. [youpaipmicroBtn setImage:[UIImage imageNamed:@"vqu_images_gift_on"] forState:UIControlStateSelected];
  119. youpaipmicroBtn.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
  120. //悄悄送礼
  121. UIButton *qiaoqiaoBtn = [UIButton new];
  122. [selectView addSubview:qiaoqiaoBtn];
  123. [qiaoqiaoBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  124. make.right.mas_equalTo(youpaipmicroBtn.mas_left);
  125. make.top.mas_equalTo(0);
  126. make.bottom.mas_equalTo(0);
  127. make.width.mas_equalTo(ScaleSize(89));
  128. }];
  129. [qiaoqiaoBtn setTitle:@"悄悄送礼 " forState:UIControlStateNormal];
  130. [qiaoqiaoBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  131. qiaoqiaoBtn.titleLabel.font = [UIFont systemFontOfSize:12];
  132. [qiaoqiaoBtn setImage:[UIImage imageNamed:@"vqu_images_gift_off"] forState:UIControlStateNormal];
  133. [qiaoqiaoBtn setImage:[UIImage imageNamed:@"vqu_images_gift_on"] forState:UIControlStateSelected];
  134. qiaoqiaoBtn.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
  135. [qiaoqiaoBtn addTarget:self action:@selector(youpaifqiaoqiaoBtnClick:) forControlEvents:UIControlEventTouchUpInside];
  136. [youpaipmicroBtn addTarget:self action:@selector(youpaifmicroBtnClick:) forControlEvents:UIControlEventTouchUpInside];
  137. if (self.youpaipsend_gift_hide == 1){
  138. [selectView mas_remakeConstraints:^(MASConstraintMaker *make) {
  139. make.right.mas_equalTo(0);
  140. make.top.mas_equalTo(0);
  141. make.bottom.mas_equalTo(0);
  142. make.width.mas_equalTo(ScaleSize(148));
  143. }];
  144. qiaoqiaoBtn.hidden = NO;
  145. qiaoqiaoBtn.selected = YES;
  146. }else if (self.youpaipsend_gift_hide == 2){
  147. [selectView mas_remakeConstraints:^(MASConstraintMaker *make) {
  148. make.right.mas_equalTo(0);
  149. make.top.mas_equalTo(0);
  150. make.bottom.mas_equalTo(0);
  151. make.width.mas_equalTo(ScaleSize(148));
  152. }];
  153. qiaoqiaoBtn.hidden = NO;
  154. qiaoqiaoBtn.selected = NO;
  155. }else{
  156. [selectView mas_remakeConstraints:^(MASConstraintMaker *make) {
  157. make.right.mas_equalTo(0);
  158. make.top.mas_equalTo(0);
  159. make.bottom.mas_equalTo(0);
  160. make.width.mas_equalTo(ScaleSize(59));
  161. }];
  162. qiaoqiaoBtn.hidden = YES;
  163. [collectionView mas_remakeConstraints:^(MASConstraintMaker *make) {
  164. make.top.mas_equalTo(0);
  165. make.left.mas_offset(39);
  166. make.width.mas_offset(KScreenWidth-14-25-ScaleSize(59));
  167. make.bottom.mas_offset(0.f);
  168. }];
  169. }
  170. }
  171. #pragma mark <UICollectionViewDataSource>
  172. /**
  173. 返回区数
  174. @param collectionView 集合视图
  175. @return 返回区数
  176. */
  177. - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
  178. return 1;
  179. }
  180. /**
  181. 返回项目数
  182. @param collectionView 集合视图
  183. @param section 区
  184. @return 项目数
  185. */
  186. - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
  187. return self.youpaipseats.count;
  188. }
  189. -(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
  190. NSString *ID = [NSString stringWithFormat:@"%ld%ld",indexPath.section,indexPath.item];
  191. [self.youpaipcollectionView registerClass:[YOUPAIHRChatRoomHeaderCell class] forCellWithReuseIdentifier:ID];
  192. YOUPAIHRChatRoomHeaderCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
  193. YOUPAILZChatRoomSeatModel *model = self.youpaipseats[indexPath.item];
  194. cell.youpaipmodel = model;
  195. return cell;
  196. }
  197. - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
  198. YOUPAILZChatRoomSeatModel *model = self.youpaipseats[indexPath.item];
  199. model.youpaipisSelected = !model.youpaipisSelected;
  200. [self.youpaipcollectionView reloadItemsAtIndexPaths:@[indexPath]];
  201. [self youpaifverityAllSelectState];
  202. }
  203. #pragma mark UICollectionViewDelegateFlowLayout
  204. /**
  205. 项目大小
  206. @param collectionView 集合视图
  207. @param collectionViewLayout 布局
  208. @param indexPath 布局
  209. @return 大小
  210. */
  211. - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
  212. return CGSizeMake(32, 32);
  213. }
  214. #pragma mark - X间距
  215. - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
  216. return 4.0;
  217. }
  218. //设置段落的内边距
  219. - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
  220. {
  221. return UIEdgeInsetsMake(0,0,0,0);//UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
  222. }
  223. - (void)setYoupaipseats:(NSMutableArray<YOUPAILZChatRoomSeatModel *> *)youpaipseats{
  224. _youpaipseats = youpaipseats;
  225. [self.youpaipcollectionView reloadData];
  226. [self youpaifverityAllSelectState];
  227. }
  228. @end