修复了房间内私聊背景以及样式的问题

This commit is contained in:
fengshuo
2022-06-13 16:19:40 +08:00
parent 8b43023ae5
commit e51ff0f919
10 changed files with 260 additions and 203 deletions

View File

@@ -159,9 +159,11 @@
- (void)initViews {
self.sessionNavView.isInRoom = self.openType == SessionListOpenTypeRoom;
[self.view addSubview:self.sessionNavView];
[self.view addSubview:self.followInRoomView];
[self.view addSubview:self.sessionTableView];
[self.view addSubview:self.toolbarView];
if (self.openType == SessionListOpenTypeDefault) {
[self.view addSubview:self.followInRoomView];
}
}
- (void)initLayout {
@@ -170,11 +172,6 @@
make.left.top.right.mas_equalTo(self.view);
}];
[self.followInRoomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.view);
make.top.mas_equalTo(self.sessionNavView.mas_bottom);
make.height.mas_equalTo(80);
}];
[self.sessionTableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.view);
make.top.mas_equalTo(self.sessionNavView.mas_bottom);
@@ -185,6 +182,14 @@
make.left.right.mas_equalTo(self.view);
make.bottom.mas_equalTo(self.view);
}];
if (self.openType == SessionListOpenTypeDefault) {
[self.followInRoomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.view);
make.top.mas_equalTo(self.sessionNavView.mas_bottom);
make.height.mas_equalTo(80);
}];
}
}
- (void)initData {
@@ -234,7 +239,7 @@
if (userInfo.nick.length > 0) {
self.sessionNavView.title = userInfo.nick;
}
if (userInfo.roomUid) {
if (userInfo.roomUid && self.openType == SessionListOpenTypeDefault) {
self.followInRoomView.hidden = NO;
self.followInRoomView.userInfo = userInfo;
[self.sessionTableView mas_updateConstraints:^(MASConstraintMaker *make) {
@@ -366,36 +371,40 @@
#pragma mark - XPSessionMessageHeadViewDelegate
- (void)onAvatarClick:(NSInteger)uid {
XPMineUserInfoViewController * infoVC = [[XPMineUserInfoViewController alloc] init];
infoVC.uid = uid;
[self.getKeyWindowNav pushViewController:infoVC animated:YES];
if (self.openType == SessionListOpenTypeDefault) {
XPMineUserInfoViewController * infoVC = [[XPMineUserInfoViewController alloc] init];
infoVC.uid = uid;
[self.getKeyWindowNav pushViewController:infoVC animated:YES];
}
}
- (void)onFollowInRoom:(NSString *)roomUid {
__block BOOL isSameRoom = NO;
__block RoomInfoModel *roomModel;
[self.getKeyWindowNav.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
XPRoomViewController<RoomHostDelegate> * rooomVC = obj;
[[self getKeyWindowNav] popToRootViewControllerAnimated:NO];
roomModel = rooomVC.getRoomInfo;
if(rooomVC.getRoomInfo.uid == [roomUid integerValue]) {
isSameRoom = YES;
} else {
[rooomVC exitRoom];
}
*stop = YES;
}
}];
if (!isSameRoom) {
if (roomModel.type == RoomType_MiniGame) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[XPRoomViewController openRoom:roomUid fromNick:self.userInfo.nick fromType:UserEnterRoomFromType_Follow_User fromUid:[NSString stringWithFormat:@"%ld", self.userInfo.uid] viewController:[[XCCurrentVCStackManager shareManager] getCurrentVC]];
});
} else {
[XPRoomViewController openRoom:roomUid fromNick:self.userInfo.nick fromType:UserEnterRoomFromType_Follow_User fromUid:[NSString stringWithFormat:@"%ld", self.userInfo.uid] viewController:self];
}
}
if (self.openType == SessionListOpenTypeDefault) {
__block BOOL isSameRoom = NO;
__block RoomInfoModel *roomModel;
[self.getKeyWindowNav.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[XPRoomViewController class]]) {
XPRoomViewController<RoomHostDelegate> * rooomVC = obj;
[[self getKeyWindowNav] popToRootViewControllerAnimated:NO];
roomModel = rooomVC.getRoomInfo;
if(rooomVC.getRoomInfo.uid == [roomUid integerValue]) {
isSameRoom = YES;
} else {
[rooomVC exitRoom];
}
*stop = YES;
}
}];
if (!isSameRoom) {
if (roomModel.type == RoomType_MiniGame) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[XPRoomViewController openRoom:roomUid fromNick:self.userInfo.nick fromType:UserEnterRoomFromType_Follow_User fromUid:[NSString stringWithFormat:@"%ld", self.userInfo.uid] viewController:[[XCCurrentVCStackManager shareManager] getCurrentVC]];
});
} else {
[XPRoomViewController openRoom:roomUid fromNick:self.userInfo.nick fromType:UserEnterRoomFromType_Follow_User fromUid:[NSString stringWithFormat:@"%ld", self.userInfo.uid] viewController:self];
}
}
}
}
- (void)didFailRetry:(NIMMessage *)message {