YOUPAILZChatRoomFooterView.m 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. //
  2. // YOUPAILZChatRoomFooterView.m
  3. // VQU
  4. //
  5. // Created by CY on 2021/11/1.
  6. // Copyright © 2021 MS. All rights reserved.
  7. //
  8. #import "YOUPAILZChatRoomFooterView.h"
  9. @interface YOUPAILZChatRoomFooterView ()<NIMConversationManagerDelegate>
  10. @end
  11. @implementation YOUPAILZChatRoomFooterView
  12. - (void)dealloc{
  13. [[NIMSDK sharedSDK].conversationManager removeDelegate:self];
  14. }
  15. - (instancetype)init{
  16. if (self = [super init]) {
  17. [self youpaifinitUI];
  18. [[NIMSDK sharedSDK].conversationManager addDelegate:self];
  19. [self youpaifupdateUnread];
  20. }
  21. return self;
  22. }
  23. - (void)youpaifinitUI{
  24. UIButton *youpaipmoreBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  25. [youpaipmoreBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_more"] forState:UIControlStateNormal];
  26. [youpaipmoreBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_more"] forState:UIControlStateHighlighted];
  27. [youpaipmoreBtn addTarget:self action:@selector(youpaifmoreBtnClick) forControlEvents:UIControlEventTouchUpInside];
  28. [self addSubview:youpaipmoreBtn];
  29. self.youpaipmoreBtn = youpaipmoreBtn;
  30. [youpaipmoreBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  31. make.right.offset(-4.0f);
  32. make.top.offset(0.0f);
  33. make.size.mas_offset(CGSizeMake(32.0f, 32.0f));
  34. }];
  35. UIButton *youpaipgameBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  36. [youpaipgameBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_game"] forState:UIControlStateNormal];
  37. [youpaipgameBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_game"] forState:UIControlStateHighlighted];
  38. [youpaipgameBtn addTarget:self action:@selector(youpaifgameBtnClick) forControlEvents:UIControlEventTouchUpInside];
  39. [self addSubview:youpaipgameBtn];
  40. self.youpaipgameBtn = youpaipgameBtn;
  41. [youpaipgameBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  42. make.right.equalTo(youpaipmoreBtn.mas_left).offset(-9.0f);
  43. make.top.offset(0.0f);
  44. make.size.mas_offset(CGSizeMake(32.0f, 32.0f));
  45. }];
  46. YOUPAILZBadgeButton *messageBtn = [YOUPAILZBadgeButton buttonWithType:UIButtonTypeCustom];
  47. [messageBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_message"] forState:(UIControlStateNormal)];
  48. [messageBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_message"] forState:UIControlStateHighlighted];
  49. [messageBtn addTarget:self action:@selector(youpaifmessageBtnClick) forControlEvents:(UIControlEventTouchUpInside)];
  50. [self addSubview:messageBtn];
  51. self.messageBtn = messageBtn;
  52. [messageBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  53. make.right.equalTo(youpaipgameBtn.mas_left).offset(-9.0f);
  54. make.top.offset(0.0f);
  55. make.size.mas_offset(CGSizeMake(32.0f, 32.0f));
  56. }];
  57. UIButton *youpaipmicBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  58. [youpaipmicBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_mic_n"] forState:UIControlStateNormal];
  59. [youpaipmicBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_mic_s"] forState:UIControlStateSelected];
  60. [youpaipmicBtn addTarget:self action:@selector(youpaifmicBtnClick:) forControlEvents:UIControlEventTouchUpInside];
  61. youpaipmicBtn.hidden = YES;
  62. youpaipmicBtn.selected = YES;
  63. [self addSubview:youpaipmicBtn];
  64. self.youpaipmicBtn = youpaipmicBtn;
  65. [youpaipmicBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  66. make.right.equalTo(messageBtn.mas_left).offset(-9.0f);
  67. make.top.offset(0.0f);
  68. make.size.mas_offset(CGSizeMake(32.0f, 32.0f));
  69. }];
  70. UIButton *youpaipgiftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  71. [youpaipgiftBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_gift"] forState:UIControlStateNormal];
  72. [youpaipgiftBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_gift"] forState:UIControlStateHighlighted];
  73. [youpaipgiftBtn addTarget:self action:@selector(youpaifgiftBtnClick) forControlEvents:UIControlEventTouchUpInside];
  74. [self addSubview:youpaipgiftBtn];
  75. self.youpaipgiftBtn = youpaipgiftBtn;
  76. [youpaipgiftBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  77. make.right.equalTo(messageBtn.mas_left).offset(-9.0f);
  78. make.top.offset(0.0f);
  79. make.size.mas_offset(CGSizeMake(32.0f, 32.0f));
  80. }];
  81. UIView *chatBgV = [[UIView alloc] init];
  82. chatBgV.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.3f];
  83. chatBgV.layer.cornerRadius = 16.0f;
  84. chatBgV.clipsToBounds = YES;
  85. [self addSubview:chatBgV];
  86. [chatBgV mas_makeConstraints:^(MASConstraintMaker *make) {
  87. make.left.offset(14.0f);
  88. make.top.offset(0.0f);
  89. make.height.offset(32.0f);
  90. make.right.equalTo(youpaipgiftBtn.mas_left).offset(-9.0f);
  91. }];
  92. UIButton *youpaipemojiBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  93. [youpaipemojiBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_emoji"] forState:UIControlStateNormal];
  94. [youpaipemojiBtn setImage:[UIImage imageNamed:@"vqu_images_chatroom_emoji"] forState:UIControlStateHighlighted];
  95. [youpaipemojiBtn addTarget:self action:@selector(youpaifemojiBtnClick) forControlEvents:UIControlEventTouchUpInside];
  96. [chatBgV addSubview:youpaipemojiBtn];
  97. self.youpaipemojiBtn = youpaipemojiBtn;
  98. [youpaipemojiBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  99. make.right.offset(-7.0f);
  100. make.centerY.equalTo(chatBgV.mas_centerY);
  101. make.size.mas_offset(CGSizeMake(24.0f, 24.0f));
  102. }];
  103. UILabel *chatDescL = [[UILabel alloc] init];
  104. chatDescL.font = LCFont(14.0f);
  105. chatDescL.text = @"聊聊天…";
  106. chatDescL.textColor = HexColorFromRGB(0x6C6B70);
  107. [chatBgV addSubview:chatDescL];
  108. [chatDescL mas_makeConstraints:^(MASConstraintMaker *make) {
  109. make.left.offset(7.0f);
  110. make.top.bottom.offset(0.0f);
  111. }];
  112. UIButton *youpaipchatBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  113. [youpaipchatBtn addTarget:self action:@selector(youpaifchatBtnClick) forControlEvents:UIControlEventTouchUpInside];
  114. [chatBgV addSubview:youpaipchatBtn];
  115. self.youpaipchatBtn = youpaipchatBtn;
  116. [youpaipchatBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  117. make.left.offset(0.0f);
  118. make.top.bottom.offset(0.0f);
  119. make.right.equalTo(youpaipemojiBtn.mas_left).offset(0.0f);
  120. }];
  121. }
  122. // 显示麦克风按钮
  123. - (void)youpaifshowMicBtn:(BOOL)show{
  124. self.youpaipmicBtn.hidden = !show;
  125. [self.youpaipgiftBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
  126. if (self.youpaipmicBtn.hidden) {
  127. make.right.equalTo(self.messageBtn.mas_left).offset(-9.0f);
  128. }else{
  129. make.right.equalTo(self.youpaipmicBtn.mas_left).offset(-9.0f);
  130. }
  131. make.top.offset(0.0f);
  132. make.size.mas_offset(CGSizeMake(32.0f, 32.0f));
  133. }];
  134. }
  135. - (void)youpaifmoreBtnClick{
  136. if (self.youpaipmoreBtnClickBlock != nil) {
  137. self.youpaipmoreBtnClickBlock();
  138. }
  139. }
  140. - (void)youpaifgameBtnClick{
  141. if (self.youpaipgameBtnClickBlock != nil) {
  142. self.youpaipgameBtnClickBlock();
  143. }
  144. }
  145. - (void)youpaifmessageBtnClick{
  146. if (self.messageBtnClickBlock != nil) {
  147. self.messageBtnClickBlock();
  148. }
  149. }
  150. - (void)youpaifmicBtnClick:(UIButton *)sender{
  151. sender.selected = !sender.selected;
  152. if (self.youpaipmicBtnClickBlock != nil) {
  153. self.youpaipmicBtnClickBlock();
  154. }
  155. }
  156. - (void)youpaifgiftBtnClick{
  157. if (self.youpaipgiftBtnClickBlock != nil) {
  158. self.youpaipgiftBtnClickBlock();
  159. }
  160. }
  161. - (void)youpaifemojiBtnClick{
  162. if (self.youpaipemojiBtnClickBlock != nil) {
  163. self.youpaipemojiBtnClickBlock();
  164. }
  165. }
  166. - (void)youpaifchatBtnClick{
  167. if (self.youpaipchatBtnClickBlock != nil) {
  168. self.youpaipchatBtnClickBlock();
  169. }
  170. }
  171. /// 更新信息数
  172. - (void)youpaifupdateUnread{
  173. NSInteger badge = [[NIMSDK sharedSDK].conversationManager allUnreadCount];
  174. self.messageBtn.youpaipbadgeValue = badge;
  175. }
  176. #pragma mark - NIMConversationManagerDelegate
  177. - (void)didAddRecentSession:(NIMRecentSession *)recentSession
  178. totalUnreadCount:(NSInteger)totalUnreadCount{
  179. [self youpaifupdateUnread];
  180. }
  181. - (void)didUpdateRecentSession:(NIMRecentSession *)recentSession
  182. totalUnreadCount:(NSInteger)totalUnreadCount{
  183. [self youpaifupdateUnread];
  184. }
  185. - (void)didRemoveRecentSession:(NIMRecentSession *)recentSession
  186. totalUnreadCount:(NSInteger)totalUnreadCount{
  187. [self youpaifupdateUnread];
  188. }
  189. - (void)messagesDeletedInSession:(NIMSession *)session{
  190. [self youpaifupdateUnread];
  191. }
  192. - (void)allMessagesDeleted{
  193. [self youpaifupdateUnread];
  194. }
  195. @end