贵族特权-隐身进房

This commit is contained in:
chenguilong
2022-04-26 18:41:17 +08:00
parent eb373ad8aa
commit e933347dd6
36 changed files with 633 additions and 10 deletions

View File

@@ -173,6 +173,9 @@
9B85F3502806A34B006EDF51 /* anchorPK_progress.svga in Resources */ = {isa = PBXBuildFile; fileRef = 9B85F34F2806A34B006EDF51 /* anchorPK_progress.svga */; };
9B85F3532806AB9A006EDF51 /* XPAnchorPKResultView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B85F3522806AB9A006EDF51 /* XPAnchorPKResultView.m */; };
9B85F3562806DD8A006EDF51 /* XPAnchorPKFinishView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B85F3552806DD8A006EDF51 /* XPAnchorPKFinishView.m */; };
9B86D87A2817DD8400494FCD /* XPRoomEnterHideTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D8792817DD8400494FCD /* XPRoomEnterHideTipView.m */; };
9B86D87D2817EA0900494FCD /* XPNobleSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D87C2817EA0900494FCD /* XPNobleSettingViewController.m */; };
9B86D8802817F4A300494FCD /* XPNobleSettingNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D87F2817F4A300494FCD /* XPNobleSettingNavView.m */; };
9B92A3392797BE4500AD168F /* XPMineSkillTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A3382797BE4500AD168F /* XPMineSkillTipView.m */; };
9B92A33C2797E38100AD168F /* XPMineHeadItemTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A33B2797E38100AD168F /* XPMineHeadItemTableViewCell.m */; };
9B92A3442797EE6500AD168F /* XPMatchManagePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A3432797EE6500AD168F /* XPMatchManagePresenter.m */; };
@@ -1048,6 +1051,12 @@
9B85F3522806AB9A006EDF51 /* XPAnchorPKResultView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorPKResultView.m; sourceTree = "<group>"; };
9B85F3542806DD8A006EDF51 /* XPAnchorPKFinishView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAnchorPKFinishView.h; sourceTree = "<group>"; };
9B85F3552806DD8A006EDF51 /* XPAnchorPKFinishView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAnchorPKFinishView.m; sourceTree = "<group>"; };
9B86D8782817DD8400494FCD /* XPRoomEnterHideTipView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomEnterHideTipView.h; sourceTree = "<group>"; };
9B86D8792817DD8400494FCD /* XPRoomEnterHideTipView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomEnterHideTipView.m; sourceTree = "<group>"; };
9B86D87B2817EA0900494FCD /* XPNobleSettingViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNobleSettingViewController.h; sourceTree = "<group>"; };
9B86D87C2817EA0900494FCD /* XPNobleSettingViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNobleSettingViewController.m; sourceTree = "<group>"; };
9B86D87E2817F4A300494FCD /* XPNobleSettingNavView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNobleSettingNavView.h; sourceTree = "<group>"; };
9B86D87F2817F4A300494FCD /* XPNobleSettingNavView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNobleSettingNavView.m; sourceTree = "<group>"; };
9B92A3372797BE4500AD168F /* XPMineSkillTipView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineSkillTipView.h; sourceTree = "<group>"; };
9B92A3382797BE4500AD168F /* XPMineSkillTipView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineSkillTipView.m; sourceTree = "<group>"; };
9B92A33A2797E38100AD168F /* XPMineHeadItemTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineHeadItemTableViewCell.h; sourceTree = "<group>"; };
@@ -3285,6 +3294,8 @@
9BEE3D1627858E5700C83219 /* XPNobleAuthorityDescView.m */,
9BBC02852786D75C0007C24B /* XPNobleUpgradeLevelView.h */,
9BBC02862786D75C0007C24B /* XPNobleUpgradeLevelView.m */,
9B86D87E2817F4A300494FCD /* XPNobleSettingNavView.h */,
9B86D87F2817F4A300494FCD /* XPNobleSettingNavView.m */,
);
path = SubViews;
sourceTree = "<group>";
@@ -3344,6 +3355,8 @@
9BC5C8EC277AFF63007C8719 /* XPNobleCenterViewController.m */,
9BC5C8F4277B0263007C8719 /* XPNobleCenterListViewController.h */,
9BC5C8F5277B0263007C8719 /* XPNobleCenterListViewController.m */,
9B86D87B2817EA0900494FCD /* XPNobleSettingViewController.h */,
9B86D87C2817EA0900494FCD /* XPNobleSettingViewController.m */,
9BEE3D0C27853BD000C83219 /* ThemeColor+NobleCenter.h */,
9BEE3D0D27853BD000C83219 /* ThemeColor+NobleCenter.m */,
);
@@ -4037,6 +4050,8 @@
9B6B3AAA278C2EA7005551EC /* XPRoomNobleLevelUpView.m */,
9BC8C82E28090C9200C24F85 /* XPRoomAnchorRankBannerView.h */,
9BC8C82F28090C9200C24F85 /* XPRoomAnchorRankBannerView.m */,
9B86D8782817DD8400494FCD /* XPRoomEnterHideTipView.h */,
9B86D8792817DD8400494FCD /* XPRoomEnterHideTipView.m */,
E838D99E275E1BF60079E0B5 /* XPRoomAnimationView.h */,
E838D99F275E1BF60079E0B5 /* XPRoomAnimationView.m */,
9BC9DAED27E33B3F009EE409 /* XPRoomGiftAnimationParser.h */,
@@ -6085,6 +6100,7 @@
E824545C26F5EEBA00BE8163 /* XPMineVerifIdentityPresenter.m in Sources */,
9B92A3562798096000AD168F /* XPSkillCardPresenter.m in Sources */,
E8A1E44E2761F98600B294CA /* XPCandyTreeViewController.m in Sources */,
9B86D8802817F4A300494FCD /* XPNobleSettingNavView.m in Sources */,
E836DBCD279BF2F10056F7DD /* XPLittleGameRoomListView.m in Sources */,
E8899C852785CC69007944BE /* XPRoomDatingAnimationView.m in Sources */,
E84BF7D4277C383700EF8877 /* XPRoomSettingInputView.m in Sources */,
@@ -6337,6 +6353,7 @@
E8DEC9A82764A68B0078CB70 /* Api+MoreMenu.m in Sources */,
E8A6C28F27CF43D600AC7442 /* XPHomeAttentionTableViewCell.m in Sources */,
E8E5E19D27C36C3500F457D8 /* XPHomeMenuTableViewCell.m in Sources */,
9B86D87A2817DD8400494FCD /* XPRoomEnterHideTipView.m in Sources */,
E8AC721026F43955007D6E91 /* UIImageConstant.m in Sources */,
E81C27A026EEF83D0031E639 /* XPHtmlUrl.m in Sources */,
E800807C27FD84980055A8AB /* GuildInfoModel.m in Sources */,
@@ -6409,6 +6426,7 @@
9BBC02872786D75C0007C24B /* XPNobleUpgradeLevelView.m in Sources */,
9B92A3442797EE6500AD168F /* XPMatchManagePresenter.m in Sources */,
E88B5CBD26FB3BDF00DA9178 /* XPTeenagerAlertView.m in Sources */,
9B86D87D2817EA0900494FCD /* XPNobleSettingViewController.m in Sources */,
E82D5C70276AE60000858D6D /* HeadwearModel.m in Sources */,
E8A03DEC276301EF0098D9EA /* XPCandyTreeRankView.m in Sources */,
E880B3A1278BD60C00A83B0D /* XPAcrossRoomPKSelectRoomView.m in Sources */,

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "noble_nav_setting@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "noble_nav_setting@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "noble_setting_visible_close@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "noble_setting_visible_close@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "noble_setting_visible_open@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "noble_setting_visible_open@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_position_ forbid_kicked@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_position_ forbid_kicked@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_enterRoom_hide@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_enterRoom_hide@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -114,6 +114,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) GroupType groupType;
///
@property (nonatomic,strong) NSArray<UserGiftWallInfoModel *> *userGiftWall;
///是否隐身进房 0不隐身1隐身
@property (nonatomic, assign) NobleEnterHideStatus enterHide;
@end
NS_ASSUME_NONNULL_END

View File

@@ -60,4 +60,8 @@ typedef NS_ENUM(NSInteger, LittleGamePlayStatus) {
LittleGamePlayStatus_Plying = 3,//游戏中
};
typedef NS_ENUM(NSUInteger, NobleEnterHideStatus) {
NobleEnterHideStatus_NoHide = 0,//不隐身
NobleEnterHideStatus_Hide = 1,//隐身
};
#endif /* XPEnum_h */

View File

@@ -16,6 +16,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)xPNobleCenterNavView:(XPNobleCenterNavView *)view didClickBackButton:(UIButton *)sender;
///点击了帮助按钮
- (void)xPNobleCenterNavView:(XPNobleCenterNavView *)view didClickHelpButton:(UIButton *)sender;
///点击了设置按钮
- (void)xPNobleCenterNavView:(XPNobleCenterNavView *)view didClickSettingButton:(UIButton *)sender;
@end

View File

@@ -19,6 +19,8 @@
@property (nonatomic,strong) UILabel *titleLabel;
///
@property (nonatomic, strong) UIButton *helpButton;
///
@property (nonatomic, strong) UIButton *settingButton;
@end
@implementation XPNobleCenterNavView
@@ -43,12 +45,19 @@
}
}
- (void)settingButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPNobleCenterNavView:didClickSettingButton:)]) {
[self.delegate xPNobleCenterNavView:self didClickSettingButton:sender];
}
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self addSubview:self.backButton];
[self addSubview:self.titleLabel];
[self addSubview:self.helpButton];
[self addSubview:self.settingButton];
}
- (void)initSubViewConstraints {
@@ -60,6 +69,10 @@
make.right.mas_equalTo(-15);
make.centerY.equalTo(self.mas_bottom).mas_offset(-22);
}];
[self.settingButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(self.helpButton.mas_left).mas_offset(-8);
make.centerY.equalTo(self.mas_bottom).mas_offset(-22);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
@@ -90,6 +103,16 @@
return _helpButton;
}
- (UIButton *)settingButton {
if (!_settingButton) {
_settingButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_settingButton setImage:[UIImage imageNamed:@"noble_nav_setting"] forState:UIControlStateNormal];
_settingButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[_settingButton addTarget:self action:@selector(settingButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_settingButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
}
return _settingButton;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {

View File

@@ -0,0 +1,27 @@
//
// XPNobleSettingNavView.h
// xplan-ios
//
// Created by GreenLand on 2022/4/26.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class XPNobleSettingNavView;
@protocol XPNobleSettingNavViewDelegate <NSObject>
///点击了返回按钮
- (void)xPNobleSettingNavView:(XPNobleSettingNavView *)view didClickBackButton:(UIButton *)sender;
@end
@interface XPNobleSettingNavView : UIView
///代理
@property (nonatomic,weak) id<XPNobleSettingNavViewDelegate> delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,82 @@
//
// XPNobleSettingNavView.m
// xplan-ios
//
// Created by GreenLand on 2022/4/26.
//
#import "XPNobleSettingNavView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "UIButton+EnlargeTouchArea.h"
@interface XPNobleSettingNavView ()
///
@property (nonatomic,strong) UIButton *backButton;
///
@property (nonatomic,strong) UILabel *titleLabel;
@end
@implementation XPNobleSettingNavView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Response
- (void)backButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPNobleSettingNavView:didClickBackButton:)]) {
[self.delegate xPNobleSettingNavView:self didClickBackButton:sender];
}
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self addSubview:self.backButton];
[self addSubview:self.titleLabel];
}
- (void)initSubViewConstraints {
[self.backButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(15);
make.centerY.equalTo(self.mas_bottom).mas_offset(-22);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.centerY.equalTo(self.mas_bottom).mas_offset(-22);
}];
}
#pragma mark - Getters And Setters
- (UIButton *)backButton {
if (!_backButton) {
_backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_backButton setImage:[UIImage imageNamed:@"home_search_white_back"] forState:UIControlStateNormal];
_backButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_backButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
}
return _backButton;
}
- (UILabel *)titleLabel {
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.textAlignment = NSTextAlignmentCenter;
_titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium];
_titleLabel.text = @"贵族设置";
_titleLabel.textColor = [UIColor whiteColor];
}
return _titleLabel;
}
@end

View File

@@ -23,6 +23,9 @@ NS_ASSUME_NONNULL_BEGIN
///贵族特权未点亮短描述颜色0x8B7245
+ (UIColor *)noContainDescTextColor;
///贵族设置背景颜色0x232017
+ (UIColor *)nobleSettingBgColor;
@end
NS_ASSUME_NONNULL_END

View File

@@ -29,4 +29,9 @@
return UIColorFromRGB(0x8B7245);
}
///0x232017
+ (UIColor *)nobleSettingBgColor {
return UIColorFromRGB(0x232017);
}
@end

View File

@@ -30,7 +30,7 @@
#import "XPNobleCenterNavView.h"
#import "XPNobleCenterMyNobleView.h"
#import "XPWebViewController.h"
#import "XPMineTeenagerViewController.h"
#import "XPNobleSettingViewController.h"
///P
#import "XPNobleCenterPresenter.h"
///model
@@ -99,7 +99,7 @@
}
- (void)viewWillAppear:(BOOL)animated {
[super viewDidAppear:animated];
[super viewWillAppear:animated];
[self hideNavigationBar];
}
@@ -342,6 +342,11 @@
[self.navigationController pushViewController:webVC animated:YES];
}
- (void)xPNobleCenterNavView:(XPNobleCenterNavView *)view didClickSettingButton:(UIButton *)sender {
XPNobleSettingViewController * settingVC =[[XPNobleSettingViewController alloc] init];
[self.navigationController pushViewController:settingVC animated:YES];
}
#pragma mark - events
- (void)onOpenNobleButtonClick:(UIButton *)button {
[StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventVipOpenClick];

View File

@@ -0,0 +1,16 @@
//
// XPNobleSettingViewController.h
// xplan-ios
//
// Created by GreenLand on 2022/4/26.
//
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPNobleSettingViewController : MvpViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,109 @@
//
// XPNobleSettingViewController.m
// xplan-ios
//
// Created by GreenLand on 2022/4/26.
//
#import "XPNobleSettingViewController.h"
#import "XPNobleSettingNavView.h"
///Tool
#import "ThemeColor+NobleCenter.h"
#import "XPMacro.h"
#import "UIButton+EnlargeTouchArea.h"
///Third
#import <Masonry/Masonry.h>
@interface XPNobleSettingViewController ()<XPNobleSettingNavViewDelegate>
@property (nonatomic, strong) XPNobleSettingNavView *navView;
///
@property (nonatomic, strong) UILabel *label;
///
@property (nonatomic, strong) UIButton *switchButton;
@end
@implementation XPNobleSettingViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"贵族设置";
self.view.backgroundColor = [ThemeColor nobleSettingBgColor];
[self initSubView];
[self initSubViewConstraints];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
}
- (BOOL)isHiddenNavBar {
return YES;
}
- (void)initSubView {
[self.view addSubview:self.navView];
[self.view addSubview:self.label];
[self.view addSubview:self.switchButton];
}
- (void)initSubViewConstraints {
[self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(self.view);
make.height.mas_equalTo(kNavigationHeight);
}];
[self.label mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kNavigationHeight+8);
make.left.mas_equalTo(15);
make.height.mas_equalTo(21);
}];
[self.switchButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.label);
make.right.mas_equalTo(-15);
make.height.mas_equalTo(16);
make.width.mas_equalTo(32);
}];
}
#pragma mark - XPNobleSettingNavViewDelegate
///
- (void)xPNobleSettingNavView:(XPNobleSettingNavView *)view didClickBackButton:(UIButton *)sender {
[self.navigationController popViewControllerAnimated:YES];
}
- (void)switchButtonAction:(UIButton *)sender {
}
#pragma mark - getter
- (XPNobleSettingNavView *)navView {
if (!_navView) {
_navView = [[XPNobleSettingNavView alloc] init];
_navView.delegate = self;
}
return _navView;
}
- (UILabel *)label {
if (!_label) {
_label = [[UILabel alloc] init];
_label.text = @"隐身进房";
_label.textColor = [UIColor whiteColor];
_label.font = [UIFont systemFontOfSize:14];
}
return _label;
}
- (UIButton *)switchButton {
if (!_switchButton) {
_switchButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_switchButton setImage:[UIImage imageNamed:@"noble_setting_visible_close"] forState:UIControlStateNormal];
[_switchButton setImage:[UIImage imageNamed:@"noble_setting_visible_open"] forState:UIControlStateSelected];
[_switchButton addTarget:self action:@selector(switchButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_switchButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
}
return _switchButton;
}
@end

View File

@@ -75,6 +75,7 @@
extModel.fromNick = userInfo.fromNick;
extModel.iosBubbleUrl = userInfo.iosBubbleUrl;
extModel.androidBubbleUrl = userInfo.androidBubbleUrl;
extModel.enterHide = userInfo.enterHide;
NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.model2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]];
request.roomExt = [ext toJSONString];

View File

@@ -46,6 +46,7 @@
#import "XPAcrossRoomPKPrizeView.h"
#import "XPRoomViewController.h"
#import "XPRoomAnchorRankBannerView.h"
#import "XPRoomEnterHideTipView.h"
@interface XPRoomAnimationView ()<SVGAPlayerDelegate,NIMBroadcastManagerDelegate, XPRoomGiftBroadcastViewDelegate, HWDMP4PlayDelegate>
///
@@ -232,6 +233,12 @@
NIMMessageChatroomExtension * messageExt = (NIMMessageChatroomExtension *)message.messageExt;
NSDictionary * dic = [(NSDictionary *)messageExt.roomExt.toJSONObject objectForKey:message.from];
XPMessageRemoteExtModel * extModel = [XPMessageRemoteExtModel modelWithJSON:dic];
if (extModel.enterHide == NobleEnterHideStatus_Hide) {//
if ([message.from isEqualToString:[AccountInfoStorage instance].getUid]) {
[self createEnterHideAnimation:dic];
}
return;
}
[self userEnterRoom:content ext:extModel];
}
}
@@ -390,6 +397,35 @@
}
///
- (void)createEnterHideAnimation:(NSDictionary *)dic {
XPRoomEnterHideTipView *enterHideTipView = [[XPRoomEnterHideTipView alloc] initWithFrame:CGRectMake(KScreenWidth, (KScreenHeight - 48) * 0.5, KScreenWidth, 48)];
[self.highLevleView addSubview:enterHideTipView];
POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter];
springAnimation.springSpeed = 12;
springAnimation.springBounciness = 10.f;
springAnimation.fromValue = [NSValue valueWithCGPoint:enterHideTipView.center];
springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(enterHideTipView.frame.size.width / 2, enterHideTipView.center.y)];
[springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) {
if (finished) {
POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter];
moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, enterHideTipView.center.y)];
moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, enterHideTipView.center.y)];
moveAnimation.beginTime = CACurrentMediaTime() + 3;
moveAnimation.duration = 0.5;
moveAnimation.repeatCount = 1;
moveAnimation.removedOnCompletion = YES;
[moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) {
if (finished) {
[enterHideTipView removeFromSuperview];
}
}];
[enterHideTipView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"];
}
}];
[enterHideTipView pop_addAnimation:springAnimation forKey:@"roomEnterTipUpspingOutAnimation"];
}
#pragma mark -
- (void)receiveDriveCarEnterRoom:(AttachmentModel *)attatchment {
if ([self isInSudGame]) {return;}

View File

@@ -0,0 +1,16 @@
//
// XPRoomEnterHideTipView.h
// xplan-ios
//
// Created by GreenLand on 2022/4/26.
// 隐身进房提示
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPRoomEnterHideTipView : UIView
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,94 @@
//
// XPRoomEnterHideTipView.m
// xplan-ios
//
// Created by GreenLand on 2022/4/26.
//
#import "XPRoomEnterHideTipView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor+Room.h"
#import "ThemeColor.h"
@interface XPRoomEnterHideTipView()
///
@property (nonatomic,strong) UIView *bgView;
///icon
@property (nonatomic,strong) UIImageView *iconImageView;
///
@property (nonatomic, strong) UILabel *descLabel;
@end
@implementation XPRoomEnterHideTipView
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
- (void)layoutSubviews {
[super layoutSubviews];
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.bgView];
[self.bgView addSubview:self.iconImageView];
[self.bgView addSubview:self.descLabel];
}
- (void)initSubViewConstraints {
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.centerY.mas_equalTo(self);
make.width.mas_equalTo(190);
make.height.mas_equalTo(48);
}];
[self.iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.bgView).mas_offset(12);
make.centerY.mas_equalTo(self.bgView);
make.width.height.mas_equalTo(32);
}];
[self.descLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.iconImageView.mas_right).mas_offset(8);
make.centerY.mas_equalTo(self.bgView);
}];
}
#pragma mark - Getters And Setters
- (UIView *)bgView {
if (!_bgView) {
_bgView = [[UIView alloc] init];
_bgView.backgroundColor = UIColorRGBAlpha(0x000000, 0.5);
_bgView.layer.cornerRadius = 24;
_bgView.layer.masksToBounds = YES;
}
return _bgView;
}
- (UIImageView *)iconImageView {
if (!_iconImageView) {
_iconImageView = [[UIImageView alloc] init];
_iconImageView.image = [UIImage imageNamed:@"room_enterRoom_hide"];
}
return _iconImageView;
}
- (UILabel *)descLabel {
if (!_descLabel) {
UILabel *label = [[UILabel alloc] init];
label.font = [UIFont systemFontOfSize:14];
label.textColor = [UIColor whiteColor];
label.text = @"你已隐身进入房间~";
_descLabel = label;
}
return _descLabel;
}
@end

View File

@@ -42,6 +42,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, copy) NSString *androidBubbleUrl;
///iOS房间公屏气泡
@property (nonatomic, copy) NSString *iosBubbleUrl;
///是否隐身进房 0不隐身1隐身
@property (nonatomic, assign) NobleEnterHideStatus enterHide;
@end
NS_ASSUME_NONNULL_END

View File

@@ -309,11 +309,20 @@
}
return attribute;
} else if(attachment.second == Custom_Message_Sub_Update_RoomInfo_AnimateEffect) {
NSDictionary * dic = attachment.data[@"roomInfo"];
if (dic.allKeys.count <=0) {
dic = attachment.data;
}
RoomInfoModel * roomInfo = [RoomInfoModel modelWithDictionary:dic];
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init];
[attribute appendAttributedString:[self createTextAttribute:@"消息:" color:[ThemeColor messageNickColor] font:kRoomMessageDefalutFont]];
if (roomInfo.hasAnimationEffect) {
[attribute appendAttributedString:[self createTextAttribute:@"管理员已开启房间内礼物特效" color:[ThemeColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
} else {
[attribute appendAttributedString:[self createTextAttribute:@"管理员已关闭房间内礼物特效,点击底部" color:[ThemeColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
[attribute appendAttributedString:[self createImageAttribute:[UIImage imageNamed:@"room_menu_more"]]];
[attribute appendAttributedString:[self createTextAttribute:@"图标即可开启" color:[ThemeColor messageDefaultTextColor] font:kRoomMessageDefalutFont]];
}
return attribute;
} else if (attachment.second == Custom_Message_Sub_Update_RoomInfo_CleanScreen) {
NSNumber *roleType = attachment.data[@"roleType"];

View File

@@ -25,6 +25,7 @@
#import "RoomInfoModel.h"
#import "AttachmentModel.h"
#import "RoomFaceSendInfoModel.h"
#import "XPMessageRemoteExtModel.h"
///View
#import "XPRoomMessageTableViewCell.h"
#import "XPRoomMessageHeaderView.h"
@@ -257,6 +258,14 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
return NO;
}
///
- (BOOL)handleHideEnter:(NIMMessage *)message {
NIMMessageChatroomExtension * messageExt = (NIMMessageChatroomExtension *)message.messageExt;
NSDictionary * dic = [(NSDictionary *)messageExt.roomExt.toJSONObject objectForKey:message.from];
XPMessageRemoteExtModel * extModel = [XPMessageRemoteExtModel modelWithJSON:dic];
return extModel.enterHide;
}
#pragma mark -
///
- (void)addRoomMessage:(NIMMessage *)message {
@@ -578,18 +587,24 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
//
[self scrollToBottom:YES];
}
BOOL hideEnter = [self handleHideEnter:message];
if (!hideEnter) {
///
[self addRoomMessage:message];
}
if (!roomInfo.hasAnimationEffect) {
[self roomInfoNoGiftAnimationMessage:message];
}
[self createUserEnterRoomAddRoomtopicMessage];
}];
} else {
BOOL hideEnter = [self handleHideEnter:message];
if (!hideEnter) {
///
[self addRoomMessage:message];
}
}
}
} else if(content.eventType == NIMChatroomEventTypeInfoUpdated) {
if (roomInfo.isCloseScreen) {return;}
if (roomInfo.datingState == RoomDatingStateChangeType_Open) {

View File

@@ -47,6 +47,8 @@
@property (nonatomic,strong) UILabel *leaveLabel;
///
@property (nonatomic,strong) MicroGiftValueView *giftValueView;
///
@property (nonatomic, strong) UIImageView *forbidKickView;
///
@property (nonatomic,strong) MicroQueueModel *microModel;
///
@@ -100,6 +102,7 @@
[self addSubview:self.avatarImageView];
[self addSubview:self.headWearImageView];
[self addSubview:self.micStateImageView];
[self addSubview:self.forbidKickView];
[self addSubview:self.giftValueView];
[self addSubview:self.faceImageView];
@@ -132,6 +135,10 @@
[self.micStateImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.avatarImageView);
}];
[self.forbidKickView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.bottom.mas_equalTo(self.avatarImageView);
make.width.height.mas_equalTo(18);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
@@ -480,6 +487,15 @@
return _micStateImageView;
}
- (UIImageView *)forbidKickView {
if (!_forbidKickView) {
_forbidKickView = [[UIImageView alloc] init];
_forbidKickView.image = [UIImage imageNamed:@"room_position_ forbid_kicked"];
_forbidKickView.hidden = YES;
}
return _forbidKickView;
}
- (MicroWaveView *)animationView {
if (!_animationView) {
_animationView = [[MicroWaveView alloc] init];

View File

@@ -751,6 +751,34 @@
break;
case UserCardItemType_KickOut:
{
// 1
if (self.targetUserInfo.userVipInfoVO.vipLevel > 6) {
//2
if (self.cardInfo.roomInfo.uid != [AccountInfoStorage instance].getUid.integerValue) {
[self showErrorToast:@"该用户为神皇贵族,只有房主才可以踢出哦~"];
} else {//
NSString *message = [NSString stringWithFormat:@"该用户为神皇贵族\n确认是否要将其踢出"];
TTAlertConfig *config = [[TTAlertConfig alloc] init];
config.title = @"";
config.message = message;
[TTPopup alertWithConfig:config confirmHandler:^{
if ([self isInSudGame:self.cardInfo.uid]) {
NSString *message = [NSString stringWithFormat:@"游戏模式下默认该玩家退出游戏是否要将此用户踢出房间?"];
TTAlertConfig *config = [[TTAlertConfig alloc] init];
config.title = @"";
config.message = message;
[TTPopup alertWithConfig:config confirmHandler:^{
[self.presenter makeKickUser:self.cardInfo.uid roomId:roomId];
} cancelHandler:^{
}];
} else {
[self.presenter makeKickUser:self.cardInfo.uid roomId:roomId];
}
} cancelHandler:^{
}];
}
return;
}
if ([self isInSudGame:self.cardInfo.uid]) {
NSString *message = [NSString stringWithFormat:@"游戏模式下默认该玩家退出游戏是否要将此用户踢出房间?"];
TTAlertConfig *config = [[TTAlertConfig alloc] init];