// // YOUPAIZYChatRoomMoreWindow.m // VQU // // Created by CY on 2021/11/2. // Copyright © 2021 MS. All rights reserved. // #import "YOUPAIZYChatRoomMoreWindow.h" #define kRowMarge 12.0f #define kRowHeight 60.0f #define KColCount 4 @interface YOUPAIZYChatRoomMoreWindow () @property (nonatomic, strong) NSMutableArray *youpaipdataSource; @property (nonatomic, strong) NSMutableArray *youpaipplayTypes; // 玩法类型 @property (nonatomic, strong) YOUPAILZChatRoomModel *youpaipchatroomModel; @property (nonatomic,strong) YOUPAILZChatRoomMoreModel *youpaipmoreModel; @end @implementation YOUPAIZYChatRoomMoreWindow - (instancetype)initWithModel:(YOUPAILZChatRoomModel *)youpaipchatroomModel youpaipmoreModel:(nonnull YOUPAILZChatRoomMoreModel *)youpaipmoreModel{ if (self = [super init]) { self.youpaipmoreModel = youpaipmoreModel; self.youpaipchatroomModel = youpaipchatroomModel; [self youpaifinitValue]; } return self; } - (void)youpaifinitValue{ self.youpaipdataSource = [NSMutableArray array]; if (self.youpaipchatroomModel.youpaipuserInfo.youpaifroleType != LZUserRoleTypeWithNormal) { [self.youpaipdataSource addObject:@{ @"title":@"礼物动画",@"selTitle":@"礼物动画",@"image":[UIImage imageNamed:@"vqu_images_chatroom_closeanimation"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_openanimation"],@"type":@(LZChatRoomOperationTypeWithAnimation),@"selected":@(self.youpaipmoreModel.youpaipisCloseAnimation) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"自由麦序",@"selTitle":@"关闭自由麦序",@"image":[UIImage imageNamed:@"vqu_images_chatroom_freeseat"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_closefreeseat"],@"type":@(LZChatRoomOperationTypeWithFreeSeat),@"selected":@(self.youpaipmoreModel.youpaipisSeatFree) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"清空公屏",@"selTitle":@"清空公屏",@"image":[UIImage imageNamed:@"vqu_images_chatroom_emptychat"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_emptychat"],@"type":@(LZChatRoomOperationTypeWithEmptyChat),@"selected":@(NO) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"关闭公屏",@"selTitle":@"开启公屏",@"image":[UIImage imageNamed:@"vqu_images_chatroom_closechat"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_openchat"],@"type":@(LZChatRoomOperationTypeWithCloseChat),@"selected":@(self.youpaipmoreModel.youpaipisCloseChatMessage) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"房间上锁",@"selTitle":@"房间解锁",@"image":[UIImage imageNamed:@"vqu_images_chatroom_roomlock"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_roomunlock"],@"type":@(LZChatRoomOperationTypeWithRoomLock),@"selected":@(self.youpaipmoreModel.youpaipisLock) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"房间资料",@"selTitle":@"房间资料",@"image":[UIImage imageNamed:@"vqu_images_chatroom_roominfo"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_roominfo"],@"type":@(LZChatRoomOperationTypeWithRoomInfo),@"selected":@(NO) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"房间背景",@"selTitle":@"房间背景",@"image":[UIImage imageNamed:@"vqu_images_chatroom_bg_image"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_bg_image"],@"type":@(LZChatRoomOperationTypeWithBackgoundImage),@"selected":@(NO) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"禁言管理",@"selTitle":@"禁言管理",@"image":[UIImage imageNamed:@"vqu_images_chatroom_disable_send_message_manage"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_disable_send_message_manage"],@"type":@(LZChatRoomOperationTypeWithDisableMessage),@"selected":@(NO) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"房间黑名单",@"selTitle":@"房间黑名单",@"image":[UIImage imageNamed:@"vqu_images_chatroom_roomblocklist"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_roomblocklist"],@"type":@(LZChatRoomOperationTypeWithRoomBlockList),@"selected":@(NO) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"静音",@"selTitle":@"静音",@"image":[UIImage imageNamed:@"vqu_images_chatroom_openmute"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_closemute"],@"type":@(LZChatRoomOperationTypeWithMute),@"selected":@(self.youpaipmoreModel.youpaipisRemoteAudio) }.mutableCopy]; if([self.youpaipchatroomModel.youpaiphostSeat.youpaipuserInfo.youpaipid isEqual:self.youpaipchatroomModel.youpaipuserInfo.youpaipid]){ [self.youpaipdataSource addObject:@{ @"title":@"音乐",@"selTitle":@"音乐",@"image":[UIImage imageNamed:@"vqu_images_chatroom_bg_music"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_bg_music"],@"type":@(LZChatRoomOperationTypeWithBgMusic),@"selected":@(NO) }.mutableCopy]; [self youpaifinitPlayTypes]; } }else{ [self.youpaipdataSource addObject:@{ @"title":@"礼物动画",@"selTitle":@"礼物动画",@"image":[UIImage imageNamed:@"vqu_images_chatroom_closeanimation"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_openanimation"],@"type":@(LZChatRoomOperationTypeWithAnimation),@"selected":@(self.youpaipmoreModel.youpaipisCloseAnimation) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"举报",@"selTitle":@"举报",@"image":[UIImage imageNamed:@"vqu_images_chatroom_report"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_report"],@"type":@(LZChatRoomOperationTypeWithReport),@"selected":@(NO) }.mutableCopy]; [self.youpaipdataSource addObject:@{ @"title":@"静音",@"selTitle":@"静音",@"image":[UIImage imageNamed:@"vqu_images_chatroom_openmute"],@"selImage":[UIImage imageNamed:@"vqu_images_chatroom_closemute"],@"type":@(LZChatRoomOperationTypeWithMute),@"selected":@(self.youpaipmoreModel.youpaipisRemoteAudio) }.mutableCopy]; } } - (void)youpaifinitPlayTypes{ self.youpaipplayTypes = [NSMutableArray array]; [self.youpaipplayTypes addObject:@{ @"title":@"开启心动值",@"selTitle":@"关闭心动值",@"image":[UIImage imageNamed:@"vqu_image_chatroom_cardiac_open"],@"selImage":[UIImage imageNamed:@"vqu_image_chatroom_cardiac_close"],@"type":@(LZChatRoomOperationTypeWithCardiac),@"selected":@(self.youpaipmoreModel.youpaipisOpenCardiac) }.mutableCopy]; if (self.youpaipchatroomModel.youpaipplayType == LZChatRoomPlayTypeWithCardiac) { [self.youpaipplayTypes addObject:@{ @"title":@"清空心动值",@"selTitle":@"清空心动值",@"image":[UIImage imageNamed:@"vqu_image_chatroom_clear_cardiac"],@"selImage":[UIImage imageNamed:@"vqu_image_chatroom_clear_cardiac"],@"type":@(LZChatRoomOperationTypeWithClearCardiac),@"selected":@(NO) }.mutableCopy]; } [self.youpaipplayTypes addObject:@{ @"title":@"开启相亲",@"selTitle":@"关闭相亲",@"image":[UIImage imageNamed:@"vqu_image_chatroom_blinddata_open"],@"selImage":[UIImage imageNamed:@"vqu_image_chatroom_blinddata_close"],@"type":@(LZChatRoomOperationTypeWithBlindDate),@"selected":@(self.youpaipmoreModel.youpaipisOpenBlindDate) }.mutableCopy]; } - (void)viewDidLoad { [super viewDidLoad]; self.baseView.hidden = YES; [self youpaifinitUI]; } - (void)youpaifinitUI{ UIView *bgV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, self.youpaiftotalHeight)]; bgV.backgroundColor = HexColorFromRGB(0x2A2935); [self.view addSubview:bgV]; [bgV mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.bottom.offset(0.0f); make.height.offset(self.youpaiftotalHeight); }]; [LCTools clipCorner:UIRectCornerTopLeft|UIRectCornerTopRight View:bgV size:CGSizeMake(20.0f, 20.0f)]; CGFloat curHeight = 0.0f; if (self.youpaipplayTypes.count != 0) { UIView *headerV = [[UIView alloc] init]; [bgV addSubview:headerV]; [headerV mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.offset(0.0f); make.height.offset(49.0f); }]; UILabel *titleL = [[UILabel alloc] init]; titleL.text = @"房间玩法"; titleL.textColor = [UIColor whiteColor]; titleL.font = LCBoldFont(17.0f); [headerV addSubview:titleL]; [titleL mas_makeConstraints:^(MASConstraintMaker *make) { make.left.offset(14.0f); make.centerY.equalTo(headerV); }]; UIView *playTpyeBgV = [[UIView alloc] init]; [bgV addSubview:playTpyeBgV]; [playTpyeBgV mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(headerV.mas_bottom).offset(0.0f); make.left.right.offset(0.0f); make.height.offset(self.youpaifplayTypeHeight); }]; NSInteger colCount = KColCount; for (NSInteger i = 0; i < self.youpaipplayTypes.count; i ++) { NSInteger col = i % colCount; NSInteger row = i / colCount; CGFloat width = KScreenWidth / colCount; NSDictionary *dict = self.youpaipplayTypes[i]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(col * width, row * kRowHeight + row * kRowMarge, width, kRowHeight); btn.tag = i; [btn addTarget:self action:@selector(youpaifplayTypeBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [playTpyeBgV addSubview:btn]; UIImageView *imageV = [[UIImageView alloc] initWithFrame:CGRectMake((width - 42.0f) / 2.0f, 0, 42.0f, 42.0f)]; imageV.tag = 8888; imageV.image = dict[@"image"]; [btn addSubview:imageV]; UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, imageV.mj_h + 5.0f, btn.mj_w, btn.mj_h - (imageV.mj_h + 5.0f))]; lab.tag = 9999; lab.font = LCFont(11.0f); lab.textColor = HexColorFromRGB(0xAAAAAA); lab.textAlignment = NSTextAlignmentCenter; lab.text = dict[@"title"]; [btn addSubview:lab]; if ([dict[@"selected"] boolValue]) { imageV.image = dict[@"selImage"]; lab.text = dict[@"selTitle"]; btn.selected = [dict[@"selected"] boolValue]; } } curHeight += 49.0f + self.youpaifplayTypeHeight; } UIView *headerV = [[UIView alloc] init]; [bgV addSubview:headerV]; [headerV mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.offset(0.0f); make.top.offset(curHeight); make.height.offset(49.0f); }]; UILabel *titleL = [[UILabel alloc] init]; titleL.text = @"房间设置"; titleL.textColor = [UIColor whiteColor]; titleL.font = LCBoldFont(17.0f); [headerV addSubview:titleL]; [titleL mas_makeConstraints:^(MASConstraintMaker *make) { make.left.offset(14.0f); make.centerY.equalTo(headerV); }]; UIView *contentBgV = [[UIView alloc] init]; [bgV addSubview:contentBgV]; [contentBgV mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(headerV.mas_bottom).offset(0.0f); make.left.right.offset(0.0f); make.height.offset(self.youpaifcontentHeight); }]; NSInteger colCount = KColCount; for (NSInteger i = 0; i < self.youpaipdataSource.count; i ++) { NSInteger col = i % colCount; NSInteger row = i / colCount; CGFloat width = KScreenWidth / colCount; NSDictionary *dict = self.youpaipdataSource[i]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(col * width, row * kRowHeight + row * kRowMarge, width, kRowHeight); btn.tag = i; [btn addTarget:self action:@selector(youpaifbtnClick:) forControlEvents:UIControlEventTouchUpInside]; [contentBgV addSubview:btn]; UIImageView *imageV = [[UIImageView alloc] initWithFrame:CGRectMake((width - 42.0f) / 2.0f, 0, 42.0f, 42.0f)]; imageV.tag = 8888; imageV.image = dict[@"image"]; [btn addSubview:imageV]; UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, imageV.mj_h + 5.0f, btn.mj_w, btn.mj_h - (imageV.mj_h + 5.0f))]; lab.tag = 9999; lab.font = LCFont(11.0f); lab.textColor = HexColorFromRGB(0xAAAAAA); lab.textAlignment = NSTextAlignmentCenter; lab.text = dict[@"title"]; [btn addSubview:lab]; if ([dict[@"selected"] boolValue]) { imageV.image = dict[@"selImage"]; lab.text = dict[@"selTitle"]; btn.selected = [dict[@"selected"] boolValue]; } } } - (void)youpaifbtnClick:(UIButton *)sender{ sender.selected = !sender.selected; NSDictionary *dict = self.youpaipdataSource[sender.tag]; UIImageView *imageV = [sender viewWithTag:8888]; UILabel *lab = [sender viewWithTag:9999]; if (sender.selected) { imageV.image = dict[@"selImage"]; lab.text = dict[@"selTitle"]; }else{ imageV.image = dict[@"image"]; lab.text = dict[@"title"]; } [self dismissViewControllerAnimated:YES completion:^{ if (self.youpaipitemClickBlock != nil) { self.youpaipitemClickBlock([dict[@"type"] integerValue], sender.selected); } }]; } - (void)youpaifplayTypeBtnClick:(UIButton *)sender{ sender.selected = !sender.selected; NSDictionary *dict = self.youpaipplayTypes[sender.tag]; UIImageView *imageV = [sender viewWithTag:8888]; UILabel *lab = [sender viewWithTag:9999]; if (sender.selected) { imageV.image = dict[@"selImage"]; lab.text = dict[@"selTitle"]; }else{ imageV.image = dict[@"image"]; lab.text = dict[@"title"]; } [self dismissViewControllerAnimated:YES completion:^{ if (self.youpaipitemClickBlock != nil) { self.youpaipitemClickBlock([dict[@"type"] integerValue], sender.selected); } }]; } - (CGFloat)youpaiftotalHeight{ CGFloat totalHeight = 0.0f; if (self.youpaipplayTypes.count != 0) { totalHeight += self.youpaifplayTypeHeight + 49.0f; } totalHeight += self.youpaifcontentHeight + 49.0f; totalHeight += SafeHeight; return totalHeight; } - (CGFloat)youpaifcontentHeight{ NSInteger col = KColCount; NSInteger row = (self.youpaipdataSource.count + (col - 1)) / col; return row * (kRowMarge + kRowHeight); } - (CGFloat)youpaifplayTypeHeight{ NSInteger col = KColCount; NSInteger row = (self.youpaipplayTypes.count + (col - 1)) / col; return row * (kRowMarge + kRowHeight); } - (void)youpaifreloadData{ for (UIView *view in self.view.subviews) { [view removeFromSuperview]; } [self youpaifinitValue]; [self youpaifinitUI]; } @end