排麦的UI
This commit is contained in:
@@ -16,6 +16,7 @@ typedef NS_ENUM(NSInteger, XPRoomMenuItemType) {
|
||||
XPRoomMenuItemType_Face,///表情
|
||||
XPRoomMenuItemType_Message,///房间私聊
|
||||
XPRoomMenuItemType_More,///更多
|
||||
XPRoomMenuItemType_ArrangeMic,///排麦
|
||||
XPRoomMenuItemType_Gift,///礼物
|
||||
};
|
||||
|
||||
|
@@ -18,12 +18,13 @@
|
||||
#import "UserInfoModel.h"
|
||||
#import "MicroStateModel.h"
|
||||
#import "RoomInfoModel.h"
|
||||
#import "AttachmentModel.h"
|
||||
///View
|
||||
#import "XPRoomSendTextView.h"
|
||||
#import "XPSendGiftView.h"
|
||||
#import "SessionListViewController.h"
|
||||
#import "XPRoomMoreMenuViewController.h"
|
||||
|
||||
#import "XPArrangeMicViewController.h"
|
||||
|
||||
@interface XPRoomMenuContainerView ()
|
||||
///
|
||||
@@ -42,6 +43,8 @@
|
||||
@property (nonatomic,strong) UIButton *moreButton;
|
||||
///礼物
|
||||
@property (nonatomic,strong) UIButton *giftButton;
|
||||
///排麦
|
||||
@property (nonatomic,strong) UIButton *arrangeMicButton;
|
||||
///占位的
|
||||
@property (nonatomic,strong) UIView * placeHolderView;
|
||||
///代理
|
||||
@@ -51,7 +54,6 @@
|
||||
|
||||
@implementation XPRoomMenuContainerView
|
||||
|
||||
|
||||
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
@@ -97,6 +99,25 @@
|
||||
case XPRoomMenuItemType_More: {
|
||||
XPRoomMoreMenuViewController * moreMenuVC = [[XPRoomMoreMenuViewController alloc] initRoomInfo:self.delegate.getRoomInfo];
|
||||
[self.delegate.getCurrentNav presentViewController:moreMenuVC animated:YES completion:nil];
|
||||
}
|
||||
case XPRoomMenuItemType_ArrangeMic:{
|
||||
self.arrangeMicButton.selected = NO;
|
||||
NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init];
|
||||
request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.getRoomInfo.roomId];
|
||||
request.userIds = @[[AccountInfoStorage instance].getUid];
|
||||
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
|
||||
NIMChatroomMember * member;
|
||||
if (error == nil) {
|
||||
member = members.firstObject;
|
||||
}
|
||||
XPArrangeMicInfoModel * info = [[XPArrangeMicInfoModel alloc] init];
|
||||
info.roomUid = [NSString stringWithFormat:@"%ld", self.delegate.getRoomInfo.uid];
|
||||
info.roomId = [NSString stringWithFormat:@"%ld", self.delegate.getRoomInfo.roomId];
|
||||
info.micQueue = [self.delegate getMicroQueue];
|
||||
info.isManager = (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager);
|
||||
XPArrangeMicViewController * arrangeMicVC = [[XPArrangeMicViewController alloc] initWithInfo:info];
|
||||
[self.delegate.getCurrentNav presentViewController:arrangeMicVC animated:YES completion:nil];
|
||||
}];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -111,6 +132,7 @@
|
||||
[self.stackView addArrangedSubview:self.micButton];
|
||||
[self.stackView addArrangedSubview:self.voiceButton];
|
||||
[self.stackView addArrangedSubview:self.faceButton];
|
||||
[self.stackView addArrangedSubview:self.arrangeMicButton];
|
||||
[self.stackView addArrangedSubview:self.messageButton];
|
||||
[self.stackView addArrangedSubview:self.moreButton];
|
||||
[self.stackView addArrangedSubview:self.placeHolderView];
|
||||
@@ -179,8 +201,30 @@
|
||||
}
|
||||
|
||||
- (void)onRoomUpdate {
|
||||
self.moreButton.hidden = self.delegate.getRoomInfo.uid == [AccountInfoStorage instance].getUid.integerValue ? NO : YES;
|
||||
RoomInfoModel * roomInfo = self.delegate.getRoomInfo;
|
||||
self.moreButton.hidden = roomInfo.uid == [AccountInfoStorage instance].getUid.integerValue ? NO : YES;
|
||||
self.arrangeMicButton.hidden = roomInfo.roomModeType != RoomModeType_Open_Micro_Mode;
|
||||
}
|
||||
|
||||
- (void)handleNIMCustomMessage:(AttachmentModel *)attachment {
|
||||
if (attachment.first == CustomMessageType_Arrange_Mic) {
|
||||
if (attachment.second == Custom_Message_Sub_Arrange_Mic_Non_Empty || attachment.second == Custom_Message_Sub_Arrange_Mic_Empty) {
|
||||
NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init];
|
||||
request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.getRoomInfo.roomId];
|
||||
request.userIds = @[[AccountInfoStorage instance].getUid];
|
||||
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
|
||||
NIMChatroomMember * member;
|
||||
if (error == nil) {
|
||||
member = members.firstObject;
|
||||
}
|
||||
if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) {
|
||||
self.arrangeMicButton.selected = attachment.second == Custom_Message_Sub_Arrange_Mic_Non_Empty;
|
||||
};
|
||||
}];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (UIButton *)inputButton {
|
||||
if (!_inputButton) {
|
||||
@@ -286,4 +330,16 @@
|
||||
return _stackView;
|
||||
}
|
||||
|
||||
- (UIButton *)arrangeMicButton {
|
||||
if (!_arrangeMicButton) {
|
||||
_arrangeMicButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_arrangeMicButton setImage:[UIImage imageNamed:@"room_menu_arrange_mic"] forState:UIControlStateNormal];
|
||||
[_arrangeMicButton setImage:[UIImage imageNamed:@"room_menu_arrange_mic_new"] forState:UIControlStateSelected];
|
||||
_arrangeMicButton.tag = XPRoomMenuItemType_ArrangeMic;
|
||||
[_arrangeMicButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside];
|
||||
_arrangeMicButton.hidden = YES;
|
||||
}
|
||||
return _arrangeMicButton;
|
||||
}
|
||||
|
||||
@end
|
||||
|
Reference in New Issue
Block a user