diff --git a/QXLive/Base/QXBaseViewController.h b/QXLive/Base/QXBaseViewController.h index 82fe025..78aadcf 100644 --- a/QXLive/Base/QXBaseViewController.h +++ b/QXLive/Base/QXBaseViewController.h @@ -13,6 +13,9 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,strong)NSMutableArray *dataArray; @property (nonatomic,assign)NSInteger page; @property (nonatomic,assign)BOOL bgImageHidden; +/// 是否不参与换肤 +@property (nonatomic,assign)BOOL isNoChangeBgImage; +@property (nonatomic,strong)UIColor *navigationTintColor; //交给子类来实现 -(void)setNavgationItems; -(void)initSubViews; diff --git a/QXLive/Base/QXBaseViewController.m b/QXLive/Base/QXBaseViewController.m index 67b64e4..cd22184 100644 --- a/QXLive/Base/QXBaseViewController.m +++ b/QXLive/Base/QXBaseViewController.m @@ -19,9 +19,13 @@ [super viewDidLoad]; // Do any additional setup after loading the view. [self.view insertSubview:self.bgImageView atIndex:0]; - [self updateBgImage:QXConfig.backgroundImage]; - [self initSubViews]; + if (self.isNoChangeBgImage) { + /// 不参与换肤 + }else{ + [self updateBgImage:QXConfig.backgroundImage]; + } [self setNavgationItems]; + [self initSubViews]; [self getData]; self.page = 1; } @@ -41,6 +45,11 @@ - (void)getData{ } + +-(void)setNavigationTintColor:(UIColor *)navigationTintColor{ + _navigationTintColor = navigationTintColor; + [self.backBtn setImage:[[UIImage imageNamed:@"back"] imageByTintColor:navigationTintColor] forState:(UIControlStateNormal)]; +} -(void)setNavgationItems{ UIButton*backBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)]; [backBtn setImage:[UIImage imageNamed:@"back"] forState:(UIControlStateNormal)]; diff --git a/QXLive/HomePage(声播)/Controlller/QXHomeViewController.m b/QXLive/HomePage(声播)/Controlller/QXHomeViewController.m index f226b1b..da47520 100644 --- a/QXLive/HomePage(声播)/Controlller/QXHomeViewController.m +++ b/QXLive/HomePage(声播)/Controlller/QXHomeViewController.m @@ -63,6 +63,7 @@ @implementation QXHomeViewController - (void)viewDidLoad { + self.isNoChangeBgImage = YES; [super viewDidLoad]; // Do any additional setup after loading the view. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginSuccess) name:noticeUserLogin object:nil]; @@ -75,11 +76,7 @@ } - (void)initSubViews{ - if ([QXConfig.backgroundImage hasPrefix:@"http"] || [QXConfig.backgroundImage hasPrefix:@"https"]) { - [self updateBgImage:QXConfig.backgroundImage]; - }else{ - [self updateBgImage:@"app_home_bg"]; - } + [self updateBgImage:@"app_home_bg"]; UIImageView *logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yusheng"]]; [self.view addSubview:logoImageView]; [logoImageView mas_makeConstraints:^(MASConstraintMaker *make) { diff --git a/QXLive/Mine(音域)/Controller/QXMineViewController.m b/QXLive/Mine(音域)/Controller/QXMineViewController.m index 4e08fbc..2913e0c 100644 --- a/QXLive/Mine(音域)/Controller/QXMineViewController.m +++ b/QXLive/Mine(音域)/Controller/QXMineViewController.m @@ -29,19 +29,23 @@ #import "QXInviteViewController.h" #import "QXChatViewController.h" #import "QXWalletRuleView.h" +#import "QXRechargeViewcController.h" +#import "QXGiftWallViewController.h" +#import @interface QXMineViewController () @property (nonatomic,strong)QXMainHeaderView *tableHeaderView; @property (nonatomic,strong)UITableView *tableView; -@property (nonatomic,strong)UIButton *redbagBtn; -@property (nonatomic,strong)UIButton *serviceBtn; -@property (nonatomic,strong)UIButton *settingBtn; +//@property (nonatomic,strong)UIButton *redbagBtn; +//@property (nonatomic,strong)UIButton *serviceBtn; +//@property (nonatomic,strong)UIButton *settingBtn; @property (nonatomic,strong)QXUserModel *userModel; @end @implementation QXMineViewController - (void)viewDidLoad { + self.isNoChangeBgImage = YES; [super viewDidLoad]; // Do any additional setup after loading the view. @@ -51,34 +55,31 @@ [self.navigationController setNavigationBarHidden:YES animated:YES]; [self getUserInfo]; [self.tableView reloadData]; - if (QXGlobal.shareGlobal.isOpenRecharge) { - self.redbagBtn.hidden = NO; - }else{ - self.redbagBtn.hidden = YES; - } + [self.tableHeaderView reloadData]; } - (void)initSubViews{ + [self updateBgImage:@"app_home_bg"]; self.tableView.tableHeaderView = self.tableHeaderView; [self.view addSubview:self.tableView]; - [self.view addSubview:self.settingBtn]; - [self.view addSubview:self.serviceBtn]; - [self.view addSubview:self.redbagBtn]; - [self.settingBtn mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.mas_equalTo(kSafeAreaTop +10); - make.right.mas_equalTo(-10); - make.width.height.mas_equalTo(30); - }]; - - [self.serviceBtn mas_makeConstraints:^(MASConstraintMaker *make) { - make.width.height.mas_equalTo(30); - make.centerY.equalTo(self.settingBtn); - make.right.equalTo(self.settingBtn.mas_left).offset(-10); - }]; - [self.redbagBtn mas_makeConstraints:^(MASConstraintMaker *make) { - make.right.equalTo(self.serviceBtn.mas_left).offset(-10); - make.centerY.width.height.equalTo(self.settingBtn); - }]; +// [self.view addSubview:self.settingBtn]; +// [self.view addSubview:self.serviceBtn]; +// [self.view addSubview:self.redbagBtn]; +// [self.settingBtn mas_makeConstraints:^(MASConstraintMaker *make) { +// make.top.mas_equalTo(kSafeAreaTop +10); +// make.right.mas_equalTo(-10); +// make.width.height.mas_equalTo(30); +// }]; +// +// [self.serviceBtn mas_makeConstraints:^(MASConstraintMaker *make) { +// make.width.height.mas_equalTo(30); +// make.centerY.equalTo(self.settingBtn); +// make.right.equalTo(self.settingBtn.mas_left).offset(-10); +// }]; +// [self.redbagBtn mas_makeConstraints:^(MASConstraintMaker *make) { +// make.right.equalTo(self.serviceBtn.mas_left).offset(-10); +// make.centerY.width.height.equalTo(self.settingBtn); +// }]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(passwordDidChanged) name:noticeChangePassword object:nil]; } -(void)getUserInfo{ @@ -89,39 +90,63 @@ } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { }]; + + [QXMineNetwork getWalletInfoSuccessBlock:^(NSString * _Nonnull coin, NSString * _Nonnull earnings, NSString * _Nonnull title, NSString * _Nonnull url) { + weakSelf.tableHeaderView.coin = coin; + weakSelf.tableHeaderView.earnings = earnings; + } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { + + }]; } #pragma mark - QXMineServiceCellDelegate --(void)didClickServiceWithBtn:(UIButton *)button title:(NSString *)title{ - UIViewController *vc; - if ([title isEqualToString:QXText(@"道具商城")]) { - vc = [[QXPropShopViewController alloc] init]; - }else if([title isEqualToString:QXText(@"段位")]){ - vc = [[QXLevelViewController alloc] init]; - }else if([title isEqualToString:QXText(@"公会中心")]){ - vc = [[QXGuildViewController alloc] init]; - }else if([title isEqualToString:QXText(@"个性装扮")]){ - vc = [[QXDressViewController alloc] init]; - }else if([title isEqualToString:QXText(@"我的背包")]){ - vc = [[QXBackpackViewController alloc] init]; - }else if([title isEqualToString:QXText(@"每日任务")]){ - vc = [[QXTaskViewController alloc] init]; - }else if([title isEqualToString:QXText(@"钱包")]){ - BOOL result = [[NSUserDefaults standardUserDefaults] boolForKey:kWalletRuleHide]; - if (result) { - vc = [[QXWalletViewController alloc] init]; - }else{ - QXWalletRuleView *ruleView = [[QXWalletRuleView alloc] init]; - MJWeakSelf - ruleView.toWalletBlock = ^{ - QXWalletViewController*vc = [[QXWalletViewController alloc] init]; - [weakSelf.navigationController pushViewController:vc animated:YES]; - }; - [ruleView showInView:self.view]; - return; +-(void)didClickServiceWithType:(QXMineServiceType)type{ + switch (type) { + case QXMineServiceTypeLevel:{ + QXLevelViewController *vc = [[QXLevelViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; } + break; + case QXMineServiceTypeDress:{ + QXDressViewController *vc = [[QXDressViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + case QXMineServiceTypeBackpack:{ + QXBackpackViewController *vc = [[QXBackpackViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + case QXMineServiceTypeSetting:{ + [self gotoSetting]; + } + break; + case QXMineServiceTypeHelp:{ + [self gotoService]; + } + break; + case QXMineServiceTypeInvite:{ + [self gotoInvite]; + } + break; + case QXMineServiceTypeDayTask:{ + QXTaskViewController *vc = [[QXTaskViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + case QXMineServiceTypeReport:{ + [self gotoService]; + } + break; + case QXMineServiceTypeCustomerService:{ + WXOpenCustomerServiceReq *req = [[WXOpenCustomerServiceReq alloc] init]; + req.corpid = @"ww1de4300858c0b461"; + req.url = @"https://work.weixin.qq.com/kfid/kfcb3d23a59c188a0e7"; + [WXApi sendReq:req completion:nil]; + } + break; + default: + break; } - [self.navigationController pushViewController:vc animated:YES]; - QXLOG(@"点击了%@",title); } -(void)didClickOptionType:(QXMainHeaderOptionType)type{ MJWeakSelf @@ -140,12 +165,56 @@ [self.navigationController pushViewController:vc animated:YES]; } break; - case QXMainHeaderOptionTypeRealName:{ - QXLOG(@"跳转实名认证"); + case QXMainHeaderOptionTypeNobility:{ + QXLOG(@"跳转贵族"); + } break; - case QXMainHeaderOptionTypeAnchorCenter:{ - QXLOG(@"跳转主播中心"); + case QXMainHeaderOptionTypeRecharge:{ + QXLOG(@"跳转充值"); + QXRechargeViewcController *vc = [[QXRechargeViewcController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + case QXMainHeaderOptionTypeShop:{ + QXLOG(@"跳转商城"); + QXPropShopViewController *vc = [[QXPropShopViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + case QXMainHeaderOptionTypeGuild:{ + QXLOG(@"跳转公会"); + QXGuildViewController *vc = [[QXGuildViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + case QXMainHeaderOptionTypeFriend:{ + QXLOG(@"跳转挚友"); + + } + break; + case QXMainHeaderOptionTypeGiftWall:{ + QXLOG(@"跳转礼物墙"); + QXGiftWallViewController *vc = [[QXGiftWallViewController alloc] init]; + vc.userId = [QXGlobal shareGlobal].loginModel.user_id; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + case QXMainHeaderOptionTypeWallet:{ + QXLOG(@"跳转钱包"); + BOOL result = [[NSUserDefaults standardUserDefaults] boolForKey:kWalletRuleHide]; + if (result) { + QXWalletViewController * vc = [[QXWalletViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + }else{ + QXWalletRuleView *ruleView = [[QXWalletRuleView alloc] init]; + MJWeakSelf + ruleView.toWalletBlock = ^{ + QXWalletViewController*vc = [[QXWalletViewController alloc] init]; + [weakSelf.navigationController pushViewController:vc animated:YES]; + }; + [ruleView showInView:self.view]; + } } break; case QXMainHeaderOptionTypeRoom:{ @@ -198,15 +267,29 @@ #pragma mark - UITableViewDelegate,UITableViewDataSource -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ - return 1; + return 2; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ QXMineServiceCell *cell = [QXMineServiceCell cellWithTableView:tableView]; cell.delegate = self; - [cell cellReload]; + if (indexPath.row == 0) { + cell.isMore = NO; + }else{ + cell.isMore = YES; + } return cell; } - +-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + if (indexPath.row == 0) { + return ScaleWidth(110); + }else{ + if (QXGlobal.shareGlobal.isOpenRecharge) { + return ScaleWidth(168); + }else{ + return ScaleWidth(110); + } + } +} -(void)gotoSetting{ QXSettingViewController *vc = [[QXSettingViewController alloc] init]; @@ -220,7 +303,7 @@ }; [self.navigationController pushViewController:vc animated:YES]; } --(void)gotoRedbag{ +-(void)gotoInvite{ QXInviteViewController *vc = [[QXInviteViewController alloc] init]; [self.navigationController pushViewController:vc animated:YES]; } @@ -262,49 +345,48 @@ -(QXMainHeaderView *)tableHeaderView{ if (!_tableHeaderView) { - _tableHeaderView = [[QXMainHeaderView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 230+12-67+ScaleWidth(67))]; + _tableHeaderView = [[QXMainHeaderView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 0)]; + _tableHeaderView.height = _tableHeaderView.getHeight; _tableHeaderView.delegate = self; } return _tableHeaderView; } -(UITableView *)tableView{ if (!_tableView) { - self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT-TabbarContentHeight-kSafeAreaTop) style:UITableViewStylePlain]; + self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT-TabbarContentHeight) style:UITableViewStylePlain]; self.tableView.backgroundColor = [UIColor clearColor]; self.tableView.delegate = self; self.tableView.dataSource = self; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; - - self.tableView.rowHeight = 164; } return _tableView; } --(UIButton *)settingBtn{ - if (!_settingBtn) { - _settingBtn = [[UIButton alloc] init]; - [_settingBtn setImage:[UIImage imageNamed:@"mine_setting"] forState:UIControlStateNormal]; - [_settingBtn setImage:[UIImage imageNamed:@"mine_setting"] forState:UIControlStateHighlighted]; - [_settingBtn addTarget:self action:@selector(gotoSetting) forControlEvents:UIControlEventTouchUpInside]; - } - return _settingBtn; -} -- (UIButton *)redbagBtn { - if (!_redbagBtn) { - _redbagBtn = [[UIButton alloc] init]; - [_redbagBtn setImage:[UIImage imageNamed:@"mine_redbag"] forState:UIControlStateNormal]; - [_redbagBtn setImage:[UIImage imageNamed:@"mine_redbag"] forState:UIControlStateHighlighted]; - [_redbagBtn addTarget:self action:@selector(gotoRedbag) forControlEvents:UIControlEventTouchUpInside]; - } - return _redbagBtn; -} - -- (UIButton *)serviceBtn { - if (!_serviceBtn) { - _serviceBtn = [[UIButton alloc] init]; - [_serviceBtn setImage:[UIImage imageNamed:@"mine_service"] forState:UIControlStateNormal]; - [_serviceBtn setImage:[UIImage imageNamed:@"mine_service"] forState:UIControlStateHighlighted]; - [_serviceBtn addTarget:self action:@selector(gotoService) forControlEvents:UIControlEventTouchUpInside]; - } - return _serviceBtn; -} +//-(UIButton *)settingBtn{ +// if (!_settingBtn) { +// _settingBtn = [[UIButton alloc] init]; +// [_settingBtn setImage:[UIImage imageNamed:@"mine_setting"] forState:UIControlStateNormal]; +// [_settingBtn setImage:[UIImage imageNamed:@"mine_setting"] forState:UIControlStateHighlighted]; +// [_settingBtn addTarget:self action:@selector(gotoSetting) forControlEvents:UIControlEventTouchUpInside]; +// } +// return _settingBtn; +//} +//- (UIButton *)redbagBtn { +// if (!_redbagBtn) { +// _redbagBtn = [[UIButton alloc] init]; +// [_redbagBtn setImage:[UIImage imageNamed:@"mine_redbag"] forState:UIControlStateNormal]; +// [_redbagBtn setImage:[UIImage imageNamed:@"mine_redbag"] forState:UIControlStateHighlighted]; +// [_redbagBtn addTarget:self action:@selector(gotoRedbag) forControlEvents:UIControlEventTouchUpInside]; +// } +// return _redbagBtn; +//} +// +//- (UIButton *)serviceBtn { +// if (!_serviceBtn) { +// _serviceBtn = [[UIButton alloc] init]; +// [_serviceBtn setImage:[UIImage imageNamed:@"mine_service"] forState:UIControlStateNormal]; +// [_serviceBtn setImage:[UIImage imageNamed:@"mine_service"] forState:UIControlStateHighlighted]; +// [_serviceBtn addTarget:self action:@selector(gotoService) forControlEvents:UIControlEventTouchUpInside]; +// } +// return _serviceBtn; +//} @end diff --git a/QXLive/Mine(音域)/Controller/个人主页/QXUserHomePageViewController.m b/QXLive/Mine(音域)/Controller/个人主页/QXUserHomePageViewController.m index a4110d8..9dddecc 100644 --- a/QXLive/Mine(音域)/Controller/个人主页/QXUserHomePageViewController.m +++ b/QXLive/Mine(音域)/Controller/个人主页/QXUserHomePageViewController.m @@ -89,7 +89,7 @@ self.categoryView.listContainer = (id)self.pagingView.listContainerView; - self.navigationController.interactivePopGestureRecognizer.enabled = (self.categoryView.selectedIndex == 0); +// self.navigationController.interactivePopGestureRecognizer.enabled = (self.categoryView.selectedIndex == 0); // self.backBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, kSafeAreaTop, 40, 40)]; diff --git a/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallSubViewController.h b/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallSubViewController.h new file mode 100644 index 0000000..3c1d7d4 --- /dev/null +++ b/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallSubViewController.h @@ -0,0 +1,19 @@ +// +// QXGiftWallSubViewController.h +// QXLive +// +// Created by 启星 on 2025/11/5. +// + +#import "QXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface QXGiftWallSubViewController : QXBaseViewController +/// 是否为已点亮 +@property(nonatomic,assign)BOOL isLight; +/// 数据源 +@property(nonatomic,strong)NSArray *giftArray; +@end + +NS_ASSUME_NONNULL_END diff --git a/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallSubViewController.m b/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallSubViewController.m new file mode 100644 index 0000000..647c089 --- /dev/null +++ b/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallSubViewController.m @@ -0,0 +1,62 @@ +// +// QXGiftWallSubViewController.m +// QXLive +// +// Created by 启星 on 2025/11/5. +// + +#import "QXGiftWallSubViewController.h" +#import "QXMineGiftWallCell.h" + +@interface QXGiftWallSubViewController () +@property (nonatomic,strong)UICollectionView *collectionView; +@end + +@implementation QXGiftWallSubViewController +-(UIView *)listView{ + return self.view; +} +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. +} +- (void)initSubViews{ + self.bgImageHidden = YES; + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + int itemWidth = (SCREEN_WIDTH-16*2-12*2)/3; + layout.itemSize = CGSizeMake(itemWidth, ScaleWidth(143)); + layout.minimumLineSpacing = 12; + layout.minimumInteritemSpacing = 12; + layout.sectionInset = UIEdgeInsetsMake(0, 16, 0, 16); + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + [self.collectionView registerNib:[UINib nibWithNibName:@"QXMineGiftWallCell" bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:@"QXMineGiftWallCell"]; + self.collectionView.delegate = self; + self.collectionView.dataSource = self; + self.collectionView.showsHorizontalScrollIndicator = NO; + self.collectionView.bounces = NO; + self.collectionView.pagingEnabled = NO; + self.collectionView.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.collectionView]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.top.mas_equalTo(0); + make.bottom.mas_equalTo(0); + make.right.mas_equalTo(0); + }]; +} +-(void)setGiftArray:(NSArray *)giftArray{ + _giftArray = giftArray; + [self.collectionView reloadData]; +} +-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ + return self.giftArray.count; +} +-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ + QXMineGiftWallCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXMineGiftWallCell" forIndexPath:indexPath]; + cell.isLight = self.isLight; + cell.model = self.giftArray[indexPath.row]; + return cell; +} + +@end diff --git a/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallViewController.h b/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallViewController.h new file mode 100644 index 0000000..6726a8d --- /dev/null +++ b/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallViewController.h @@ -0,0 +1,16 @@ +// +// QXGiftWallViewController.h +// QXLive +// +// Created by 启星 on 2025/11/5. +// + +#import "QXBaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface QXGiftWallViewController : QXBaseViewController +@property (nonatomic,strong)NSString*userId; +@end + +NS_ASSUME_NONNULL_END diff --git a/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallViewController.m b/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallViewController.m new file mode 100644 index 0000000..8aba2c8 --- /dev/null +++ b/QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallViewController.m @@ -0,0 +1,118 @@ +// +// QXGiftWallViewController.m +// QXLive +// +// Created by 启星 on 2025/11/5. +// + +#import "QXGiftWallViewController.h" +#import "QXGiftWallSubViewController.h" +#import "QXMineNetwork.h" + +@interface QXGiftWallViewController () +@property (nonatomic,strong)JXCategoryTitleView *categoryView; +@property (nonatomic,strong)JXCategoryListContainerView *containerView; +@property (nonatomic,strong)NSMutableArray *listVCArray; +@property (nonatomic,strong)NSArray*titles; +@property (nonatomic,strong)QXGiftWallSubViewController *lightVC; +@property (nonatomic,strong)QXGiftWallSubViewController *grayVC; +@end + +@implementation QXGiftWallViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. +} +-(void)viewWillAppear:(BOOL)animated{ + [super viewWillAppear:animated]; + [self.navigationController setNavigationBarHidden:NO animated:YES]; + self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0xffffff)}; +} +-(void)viewWillDisappear:(BOOL)animated{ + [super viewWillDisappear:animated]; + self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0x000000)}; +} +-(void)setNavgationItems{ + [super setNavgationItems]; + self.navigationItem.title = @"礼物墙"; + +} + +-(void)initSubViews{ +// if ([QXConfig.backgroundImage hasPrefix:@"http"] || [QXConfig.backgroundImage hasPrefix:@"https"]) { +// [self updateBgImage:QXConfig.backgroundImage]; +// }else{ + [self updateBgImage:@"home_rank_vc_bg"]; +// } + self.navigationTintColor = RGB16(0xffffff); + self.view.backgroundColor = [UIColor clearColor]; +// self.titles = @[@"房间榜", @"财富榜", @"魅力榜",@"公会榜",@"真爱榜"]; + self.titles = @[@"已点亮", @"未点亮"]; + self.listVCArray = [NSMutableArray array]; + self.categoryView = [[JXCategoryTitleView alloc] init]; + self.categoryView.frame = CGRectMake(16, NavContentHeight, SCREEN_WIDTH, 44); + self.categoryView.delegate = self; + self.categoryView.titles = self.titles; + self.categoryView.titleSelectedColor = [UIColor colorWithHexString:@"#ffffff"]; + self.categoryView.titleColor = [UIColor colorWithHexString:@"#ffffff"]; + JXCategoryIndicatorImageView *indicatorImageView = [[JXCategoryIndicatorImageView alloc] init]; + indicatorImageView.indicatorImageView.image = [UIImage imageNamed:@"home_slider"]; + indicatorImageView.indicatorWidth = (SCREEN_WIDTH-100)/self.titles.count; + indicatorImageView.indicatorHeight = 5; + self.categoryView.indicators = @[indicatorImageView]; + self.categoryView.cellWidth = JXCategoryViewAutomaticDimension; + self.categoryView.contentEdgeInsetLeft = 5; + self.categoryView.cellSpacing = 20; + self.categoryView.titleLabelZoomScale = 1.1; + self.categoryView.titleLabelZoomEnabled = YES; + self.categoryView.titleFont = [UIFont systemFontOfSize:14]; + self.categoryView.averageCellSpacingEnabled = NO; + + self.containerView = [[JXCategoryListContainerView alloc] initWithType:(JXCategoryListContainerType_ScrollView) delegate:self]; + self.containerView.frame = CGRectMake(0, self.categoryView.bottom, SCREEN_WIDTH, SCREEN_HEIGHT-self.categoryView.bottom); + [self.view addSubview: self.categoryView]; + [self.view addSubview:self.containerView]; + self.categoryView.listContainer = self.containerView; + [self getGiftWall]; +} + +-(void)getGiftWall{ + MJWeakSelf + [QXMineNetwork userGiftWallithUserId:self.userId successBlock:^(NSArray * _Nonnull lightList, NSArray * _Nonnull grayList) { + weakSelf.lightVC.giftArray = lightList; + weakSelf.grayVC.giftArray = grayList; + } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { + + }]; +} +-(NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView{ + return self.titles.count; +} +-(id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index{ + if (index == 0) { + return self.lightVC; + }else{ + return self.grayVC; + } +} +-(QXGiftWallSubViewController *)lightVC{ + if (!_lightVC) { + _lightVC = [[QXGiftWallSubViewController alloc] init]; + _lightVC.isLight = YES; + } + return _lightVC; +} + +-(QXGiftWallSubViewController *)grayVC{ + if (!_grayVC) { + _grayVC = [[QXGiftWallSubViewController alloc] init]; + _grayVC.isLight = NO; + } + return _grayVC; +} +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0); +} + +@end diff --git a/QXLive/Mine(音域)/Model/QXServiceModel.h b/QXLive/Mine(音域)/Model/QXServiceModel.h new file mode 100644 index 0000000..339d239 --- /dev/null +++ b/QXLive/Mine(音域)/Model/QXServiceModel.h @@ -0,0 +1,21 @@ +// +// QXServiceModel.h +// QXLive +// +// Created by 启星 on 2025/11/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QXServiceModel : NSObject +/// 标题 +@property (nonatomic,strong)NSString *title; +/// 类型 +@property (nonatomic,assign)NSInteger type; + +@property (nonatomic,strong)NSString* icon; +@end + +NS_ASSUME_NONNULL_END diff --git a/QXLive/Mine(音域)/Model/QXServiceModel.m b/QXLive/Mine(音域)/Model/QXServiceModel.m new file mode 100644 index 0000000..02ff9fd --- /dev/null +++ b/QXLive/Mine(音域)/Model/QXServiceModel.m @@ -0,0 +1,12 @@ +// +// QXServiceModel.m +// QXLive +// +// Created by 启星 on 2025/11/4. +// + +#import "QXServiceModel.h" + +@implementation QXServiceModel + +@end diff --git a/QXLive/Mine(音域)/View/QXMainHeaderView.h b/QXLive/Mine(音域)/View/QXMainHeaderView.h index 0df04a4..697b239 100644 --- a/QXLive/Mine(音域)/View/QXMainHeaderView.h +++ b/QXLive/Mine(音域)/View/QXMainHeaderView.h @@ -11,21 +11,11 @@ NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSInteger) { /// 个人主页 QXMainHeaderOptionTypeGotoHome = 0, - - /// 实名认证 - QXMainHeaderOptionTypeRealName = 1, - - /// 主播中心 - QXMainHeaderOptionTypeAnchorCenter = 2, - - /// 开启直播 - QXMainHeaderOptionTypeStartLive = 3, - /// 编辑 - QXMainHeaderOptionTypeGotoEdit = 4, + QXMainHeaderOptionTypeGotoEdit = 1, + /// 贵族 + QXMainHeaderOptionTypeNobility = 2, - /// 房间 - QXMainHeaderOptionTypeRoom = 5, /// 关注 QXMainHeaderOptionTypeFocus = 20, @@ -36,10 +26,25 @@ typedef NS_ENUM(NSInteger) { /// 访客 QXMainHeaderOptionTypeVisitor = 22, - /// 好友 - QXMainHeaderOptionTypeFriend = 23, + /// 充值 + QXMainHeaderOptionTypeRecharge = 30, + /// 商城 + QXMainHeaderOptionTypeShop = 31, + + /// 公会 + QXMainHeaderOptionTypeGuild = 32, + + /// 挚友 + QXMainHeaderOptionTypeFriend = 33, + + /// 房间 + QXMainHeaderOptionTypeRoom = 34, + /// 钱包 + QXMainHeaderOptionTypeWallet = 35, + /// 礼物墙 + QXMainHeaderOptionTypeGiftWall = 36, }QXMainHeaderOptionType; @protocol QXMainHeaderViewDelegate @@ -50,6 +55,10 @@ typedef NS_ENUM(NSInteger) { @interface QXMainHeaderView : UIView @property (nonatomic,weak)iddelegate; @property (nonatomic,strong)QXUserModel *userModel; +@property (nonatomic,strong)NSString *earnings; +@property (nonatomic,strong)NSString *coin; +-(void)reloadData; +-(CGFloat)getHeight; @end NS_ASSUME_NONNULL_END diff --git a/QXLive/Mine(音域)/View/QXMainHeaderView.m b/QXLive/Mine(音域)/View/QXMainHeaderView.m index 7ef9aa9..96bce0b 100644 --- a/QXLive/Mine(音域)/View/QXMainHeaderView.m +++ b/QXLive/Mine(音域)/View/QXMainHeaderView.m @@ -8,27 +8,55 @@ #import "QXMainHeaderView.h" #import "QXSeatHeaderView.h" #import "CKShimmerLabel.h" +#import "QXMineHomeToolsCell.h" +#import "QXServiceModel.h" +#import -@interface QXMainHeaderView() +@interface QXMainHeaderView() @property (nonatomic, strong) QXSeatHeaderView *userHeaderView; @property (nonatomic, strong) UIImageView *sexImageView; //@property (nonatomic, strong) UILabel *nameLabel; @property (nonatomic, strong) CKShimmerLabel *nameLabel; @property (nonatomic, strong) UILabel *idLabel; @property (nonatomic, strong) UIButton *idCopyBtn; -@property (nonatomic, strong) UIView *userTagView; + +// 贵族 +@property (nonatomic, strong) UIView *nobilityBgView; +@property (nonatomic, strong) UIImageView *nobilityImageView; + + @property (nonatomic, strong) UIView *userHomeView; -@property (nonatomic, strong) UILabel *userHomeTitleLabel; -@property (nonatomic, strong) UIImageView *userHomeImageView; +@property (nonatomic, strong) UILabel *userNobilityTitleLabel; +@property (nonatomic, strong) UIImageView *userNobilityImageView; @property (nonatomic, strong) UIButton *userHomeBtn; @property (nonatomic, strong) UIImageView *useCodeImageView; -//@property (nonatomic, strong) UIButton *leftBtn; -//@property (nonatomic, strong) UIButton *rightBtn; +/// 顶部工具栏 +@property (nonatomic, strong) UIView *topBgView; +@property (nonatomic, strong) UICollectionView *collectionView; + @property (nonatomic, strong) UIButton *roomBtn; /// 标签是否已经创建过了 @property (nonatomic, strong) NSMutableArray *iconArray; + +/// 工具栏 +@property (nonatomic, strong) NSMutableArray *toolsArray; +@property (nonatomic, strong)QXServiceModel *rechargeModel; + +@property (nonatomic, strong)SDCycleScrollView *cycleScrollView; + + +@property (nonatomic, strong)UIView *walletBgView; +@property (nonatomic, strong)UILabel *walletTitleLabel; +@property (nonatomic, strong)UIImageView *walletBgImageView; +@property (nonatomic, strong)UILabel *walletBottomLabel; +@property (nonatomic, strong)UILabel *walletMoneyLabel; +@property (nonatomic, strong)UIButton *walletBtn; + +@property (nonatomic, strong)UIImageView *giftWallBgImageView; +@property (nonatomic, strong)UILabel *giftWallTitleLabel; +@property (nonatomic, strong)UIButton *giftWallBtn; @end @implementation QXMainHeaderView @@ -42,7 +70,7 @@ } -(void)initSubviews{ MJWeakSelf - self.userHeaderView = [[QXSeatHeaderView alloc] initWithFrame:CGRectMake(16, 40, 68, 68)]; + self.userHeaderView = [[QXSeatHeaderView alloc] initWithFrame:CGRectMake(16, 18, 76, 76)]; [self.userHeaderView addTapBlock:^(id _Nonnull obj) { if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickOptionType:)]) { [weakSelf.delegate didClickOptionType:QXMainHeaderOptionTypeGotoHome]; @@ -58,17 +86,17 @@ }]; // self.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.userHeaderView.right+6, self.userHeaderView.top, self.width-self.userHeaderView.right-16-6, 23)]; - self.nameLabel = [[CKShimmerLabel alloc] initWithFrame:CGRectMake(self.userHeaderView.right+6, self.userHeaderView.top, self.width-self.userHeaderView.right-16-6, 23)]; + self.nameLabel = [[CKShimmerLabel alloc] initWithFrame:CGRectMake(self.userHeaderView.right+6, self.userHeaderView.top+5, self.width-self.userHeaderView.right-16-6, 22)]; self.nameLabel.shimmerWidth = 20; self.nameLabel.shimmerRadius = 20; self.nameLabel.shimmerColor = [UIColor yellowColor]; self.nameLabel.repeat = YES; - self.nameLabel.textColor = QXConfig.textColor; + self.nameLabel.textColor = RGB16A(0xffffff,0.85); self.nameLabel.font = [UIFont boldSystemFontOfSize:18]; // [self.nameLabel startShimmer]; [self addSubview:self.nameLabel]; - self.idLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.userHeaderView.right+6, self.nameLabel.bottom+5, 80, 17)]; + self.idLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.userHeaderView.right+6, self.nameLabel.bottom+6, 80, 17)]; self.idLabel.textColor = RGB16(0x666666); self.idLabel.font = [UIFont systemFontOfSize:12]; self.idLabel.text = @"ID:"; @@ -86,7 +114,7 @@ [self addSubview:self.idCopyBtn]; - self.userHomeView = [[UIView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-60-16, 0, 60, 23)]; + self.userHomeView = [[UIView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-60-16, 0, 54, 23)]; self.userHomeView.layer.cornerRadius = self.userHomeView.height/2.0; self.userHomeView.layer.shadowColor = [UIColor grayColor].CGColor; self.userHomeView.layer.shadowOpacity = 0.3; @@ -98,20 +126,10 @@ self.userHomeView.backgroundColor = [UIColor whiteColor]; [self addSubview:self.userHomeView]; - self.userHomeImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrowRight"]]; - self.userHomeImageView.frame = CGRectMake(self.userHomeView.width-10-16, (23-16)/2.0, 16, 16); - [self.userHomeView addSubview:self.userHomeImageView]; - - self.userHomeTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 20, 20)]; - self.userHomeTitleLabel.text = QXText(@"编辑"); - self.userHomeTitleLabel.font = [UIFont systemFontOfSize:12]; - self.userHomeTitleLabel.textColor = [UIColor colorWithHexString:@"#333333"]; - [self.userHomeTitleLabel sizeToFit]; - self.userHomeTitleLabel.x = 10; - self.userHomeTitleLabel.y =( self.userHomeView.height - self.userHomeTitleLabel.height)/2.0; - [self.userHomeView addSubview:self.userHomeTitleLabel]; + self.userHomeBtn = [[UIButton alloc] initWithFrame:self.userHomeView.bounds]; + [self.userHomeBtn setBackgroundImage:[UIImage imageNamed:@"mine_edit_btn"] forState:(UIControlStateNormal)]; [self.userHomeBtn addTarget:self action:@selector(gotoUserHomePageClick) forControlEvents:(UIControlEventTouchUpInside)]; [self.userHomeView addSubview:self.userHomeBtn]; @@ -122,73 +140,191 @@ NSArray* nameArr = @[ QXText(@"关注"), QXText(@"粉丝"),QXText(@"访客") ]; - CGFloat width = (SCREEN_WIDTH-32)/4; + CGFloat width = (SCREEN_WIDTH-60)/3; for (int i = 0; i < nameArr.count; i ++) { - UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(16+width*i, self.userHeaderView.bottom+19, width, 22)]; - titleLabel.textColor = RGB16(0x666666); + UILabel *countLabel = [[UILabel alloc] initWithFrame:CGRectMake(30+width*i, self.userHeaderView.bottom+25, width, 25)]; + countLabel.textAlignment = NSTextAlignmentCenter; + countLabel.textColor = RGB16(0xCCCDC8); + countLabel.tag = 10 + i; + countLabel.font = [UIFont fontWithName:@"DIN Condensed" size:22]; + countLabel.text = @"0"; + [self addSubview:countLabel]; + + UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(countLabel.left, countLabel.bottom+5, width, 18)]; + titleLabel.textColor = RGB16(0XCCCDC8); titleLabel.font = [UIFont systemFontOfSize:12]; titleLabel.textAlignment = NSTextAlignmentCenter; titleLabel.text = nameArr[i]; - [titleLabel sizeToFit]; - titleLabel.x = 16+width*i; - titleLabel.y = self.userHeaderView.bottom+16; - titleLabel.height = 22; [self addSubview:titleLabel]; - UILabel *countLabel = [[UILabel alloc] initWithFrame:CGRectMake(titleLabel.right+5, titleLabel.top, width-10-titleLabel.width, 22)]; - countLabel.textAlignment = NSTextAlignmentCenter; - countLabel.textColor = QXConfig.textColor; - countLabel.tag = 10 + i; - countLabel.font = [UIFont boldSystemFontOfSize:16]; - countLabel.text = @"0"; - countLabel.centerY = titleLabel.centerY; - [self addSubview:countLabel]; - UIControl *c = [[UIControl alloc] initWithFrame:CGRectMake(titleLabel.left, titleLabel.top-10, width, titleLabel.height+20)]; + + UIControl *c = [[UIControl alloc] initWithFrame:CGRectMake(countLabel.left, countLabel.top, width, countLabel.height+titleLabel.height+5)]; c.tag = 20 + i; [c addTarget:self action:@selector(viewClick:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:c]; } -// self.leftBtn = [[UIButton alloc] initWithFrame:CGRectMake(16, self.userHeaderView.bottom+54, width*2-7.5, 67)]; -// [self.leftBtn setBackgroundImage:[UIImage imageNamed:@"start_live"] forState:(UIControlStateNormal)]; -// [self.leftBtn addTarget:self action:@selector(leftAction) forControlEvents:(UIControlEventTouchUpInside)]; -// [self addSubview:self.leftBtn]; -// -// self.rightBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.leftBtn.right+7.5, self.userHeaderView.bottom+54, self.leftBtn.width, 67)]; -// [self.rightBtn setBackgroundImage:[UIImage imageNamed:@"become_anchor"] forState:(UIControlStateNormal)]; -// [self.rightBtn addTarget:self action:@selector(rightAction) forControlEvents:(UIControlEventTouchUpInside)]; -// [self addSubview:self.rightBtn]; - self.roomBtn = [[UIButton alloc] initWithFrame:CGRectMake(16, self.userHeaderView.bottom+54, self.width-32, ScaleWidth(67))]; - [self.roomBtn setBackgroundImage:[UIImage imageNamed:@"mine_header_room"] forState:(UIControlStateNormal)]; - [self.roomBtn addTarget:self action:@selector(roomAction) forControlEvents:(UIControlEventTouchUpInside)]; - [self addSubview:self.roomBtn]; + self.nobilityBgView = [[UIView alloc] initWithFrame:CGRectMake(30, self.userHeaderView.bottom+95, SCREEN_WIDTH-60, ScaleWidth(40))]; + [self.nobilityBgView addTapBlock:^(id _Nonnull obj) { + if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickOptionType:)]) { + [weakSelf.delegate didClickOptionType:QXMainHeaderOptionTypeNobility]; + } + }]; + [self addSubview:self.nobilityBgView]; + self.nobilityImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mine_nobility_bg"]]; + self.nobilityImageView.frame = self.nobilityBgView.bounds; + self.nobilityImageView.contentMode = UIViewContentModeScaleToFill; + [self.nobilityBgView addSubview:self.nobilityImageView]; + + self.userNobilityImageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"arrowRight"] imageByTintColor:RGB16(0xEECE72)]]; + self.userNobilityImageView.frame = CGRectMake(self.nobilityImageView.width-10-16, (self.nobilityBgView.height-16)/2.0, 16, 16); + [self.nobilityBgView addSubview:self.userNobilityImageView]; + + self.userNobilityTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.userNobilityImageView.left-32, (self.nobilityBgView.height-20)/2, 32, 20)]; + self.userNobilityTitleLabel.text = QXText(@"更多"); + self.userNobilityTitleLabel.font = [UIFont systemFontOfSize:14]; + self.userNobilityTitleLabel.textColor = [UIColor colorWithHexString:@"#EECE72"]; + [self.nobilityBgView addSubview:self.userNobilityTitleLabel]; + + + self.topBgView = [[UIView alloc] initWithFrame:CGRectMake(16, self.nobilityBgView.bottom, SCREEN_WIDTH-32, 90)]; + [self.topBgView addRoundedCornersWithRadius:8]; + self.topBgView.backgroundColor = RGB16A(0xffffff, 0.06); + [self addSubview:self.topBgView]; + + NSInteger maxCount = 5; + CGFloat btnWith = (int)(SCREEN_WIDTH-32-1)/maxCount; + CGFloat btnHeight = self.topBgView.height; + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake(btnWith, btnHeight); + layout.minimumLineSpacing = 0; + layout.minimumInteritemSpacing = 0; + layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + [self.collectionView registerNib:[UINib nibWithNibName:@"QXMineHomeToolsCell" bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:@"QXMineHomeToolsCell"]; + self.collectionView.delegate = self; + self.collectionView.dataSource = self; + self.collectionView.showsHorizontalScrollIndicator = NO; + self.collectionView.bounces = NO; + self.collectionView.backgroundColor = UIColor.clearColor; + [self.topBgView addSubview:self.collectionView]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.right.equalTo(self.topBgView); + }]; + + self.cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(self.topBgView.left, self.topBgView.bottom+12, self.topBgView.width, 64) delegate:self placeholderImage:nil]; + self.cycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; + [self.cycleScrollView addRoundedCornersWithRadius:8]; + [self addSubview:self.cycleScrollView]; + + + self.walletBgView = [[UIView alloc] initWithFrame:CGRectMake(self.topBgView.left, self.cycleScrollView.bottom+12, self.topBgView.width, 108)]; + self.walletBgView.backgroundColor = RGB16(0x231F2C); + [self.walletBgView addRoundedCornersWithRadius:8]; + [self addSubview:self.walletBgView]; + + self.walletTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 12, 200, 16)]; + self.walletTitleLabel.text = @"我的钱包"; + self.walletTitleLabel.font = [UIFont systemFontOfSize:14]; + self.walletTitleLabel.textColor = RGB16(0x929196); + [self.walletBgView addSubview:self.walletTitleLabel]; + + CGFloat walletWidth = (self.topBgView.width - 16*3) / 2; + self.walletBgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.topBgView.left, self.walletTitleLabel.bottom+8, walletWidth, 60)]; + self.walletBgImageView.backgroundColor = RGB16(0xFFE38E); + [self.walletBgImageView addRoundedCornersWithRadius:8]; + [self.walletBgView addSubview:self.walletBgImageView]; + + self.walletBottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.walletBgImageView.left, self.walletBgImageView.bottom-14-11, walletWidth, 14)]; + self.walletBottomLabel.text = @"钱包"; + self.walletBottomLabel.textAlignment = NSTextAlignmentCenter; + self.walletBottomLabel.font = [UIFont systemFontOfSize:12]; + self.walletBottomLabel.textColor = RGB16(0x333333); + [self.walletBgView addSubview:self.walletBottomLabel]; + + + self.walletMoneyLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.walletBgImageView.left, self.walletBgImageView.top+11, walletWidth, 25)]; + self.walletMoneyLabel.text = @"0"; + self.walletMoneyLabel.textAlignment = NSTextAlignmentCenter; + self.walletMoneyLabel.font = [UIFont fontWithName:@"DIN Condensed" size:25]; + self.walletMoneyLabel.textColor = RGB16(0x222222); + [self.walletBgView addSubview:self.walletMoneyLabel]; + + + self.giftWallBgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.walletBgImageView.right+16, self.walletBgImageView.top, walletWidth, self.walletBgImageView.height)]; + self.giftWallBgImageView.backgroundColor = RGB16(0xF1B3FF); + [self.giftWallBgImageView addRoundedCornersWithRadius:8]; + [self.walletBgView addSubview:self.giftWallBgImageView]; + + self.giftWallTitleLabel = [[UILabel alloc] initWithFrame:self.giftWallBgImageView.frame]; + self.giftWallTitleLabel.text = @"礼物墙"; + self.giftWallTitleLabel.textAlignment = NSTextAlignmentCenter; + self.giftWallTitleLabel.font = [UIFont fontWithName:@"DIN Condensed" size:20]; + self.giftWallTitleLabel.textColor = RGB16(0x222222); + [self.walletBgView addSubview:self.giftWallTitleLabel]; + + self.walletBtn = [[UIButton alloc] initWithFrame:self.walletBgImageView.frame]; + [self.walletBtn addTarget:self action:@selector(walletAction) forControlEvents:(UIControlEventTouchUpInside)]; + [self.walletBgView addSubview:self.walletBtn]; + + self.giftWallBtn = [[UIButton alloc] initWithFrame:self.giftWallBgImageView.frame]; + [self.giftWallBtn addTarget:self action:@selector(giftWalltAction) forControlEvents:(UIControlEventTouchUpInside)]; + [self.walletBgView addSubview:self.giftWallBtn]; } +-(CGFloat)getHeight{ + return self.walletBgView.bottom+6; +} +-(void)setCoin:(NSString *)coin{ + _coin = coin; + self.walletMoneyLabel.text = [NSString stringWithFormat:@"%.2f",coin.doubleValue]; +} +-(void)reloadData{ + if ([self.toolsArray containsObject:self.rechargeModel]) { + return; + } + if (QXGlobal.shareGlobal.isOpenRecharge) { + [self.toolsArray insertObject:self.rechargeModel atIndex:0]; + } +} +-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ + return self.toolsArray.count; +} +-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ + QXMineHomeToolsCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXMineHomeToolsCell" forIndexPath:indexPath]; + cell.model = self.toolsArray[indexPath.row]; + return cell; +} + +-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ + if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { + QXServiceModel *model = self.toolsArray[indexPath.row]; + [self.delegate didClickOptionType:model.type]; + } +} + -(void)viewClick:(UIControl*)sender{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { [self.delegate didClickOptionType:sender.tag]; } } --(void)roomAction{ + +-(void)walletAction{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { - [self.delegate didClickOptionType:QXMainHeaderOptionTypeRoom]; + [self.delegate didClickOptionType:QXMainHeaderOptionTypeWallet]; + } +} +-(void)giftWalltAction{ + if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { + [self.delegate didClickOptionType:QXMainHeaderOptionTypeGiftWall]; } } --(void)leftAction{ - if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { - [self.delegate didClickOptionType:QXMainHeaderOptionTypeStartLive]; - } -} --(void)rightAction{ - if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { - [self.delegate didClickOptionType:QXMainHeaderOptionTypeRealName]; - } -} -(void)gotoUserHomePageClick{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { [self.delegate didClickOptionType:QXMainHeaderOptionTypeGotoEdit]; @@ -210,7 +346,7 @@ } for (int i = 0;i +#import "QXServiceModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface QXMineHomeToolsCell : UICollectionViewCell +@property (weak, nonatomic) IBOutlet UIImageView *imageView; +@property (weak, nonatomic) IBOutlet UILabel *titleLabel; +@property (nonatomic,strong)QXServiceModel *model; +@end + +NS_ASSUME_NONNULL_END diff --git a/QXLive/Mine(音域)/View/QXMineHomeToolsCell.m b/QXLive/Mine(音域)/View/QXMineHomeToolsCell.m new file mode 100644 index 0000000..7a6614e --- /dev/null +++ b/QXLive/Mine(音域)/View/QXMineHomeToolsCell.m @@ -0,0 +1,22 @@ +// +// QXMineHomeToolsCell.m +// QXLive +// +// Created by 启星 on 2025/11/4. +// + +#import "QXMineHomeToolsCell.h" + +@implementation QXMineHomeToolsCell +-(void)setModel:(QXServiceModel *)model{ + _model = model; + self.titleLabel.text = model.title; + self.imageView.image = [UIImage imageNamed:model.icon]; +} +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code + self.backgroundColor = UIColor.clearColor; +} + +@end diff --git a/QXLive/Mine(音域)/View/QXMineHomeToolsCell.xib b/QXLive/Mine(音域)/View/QXMineHomeToolsCell.xib new file mode 100644 index 0000000..2af2824 --- /dev/null +++ b/QXLive/Mine(音域)/View/QXMineHomeToolsCell.xib @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/QXLive/Mine(音域)/View/QXMineServiceCell.h b/QXLive/Mine(音域)/View/QXMineServiceCell.h index be53940..076a615 100644 --- a/QXLive/Mine(音域)/View/QXMineServiceCell.h +++ b/QXLive/Mine(音域)/View/QXMineServiceCell.h @@ -6,17 +6,37 @@ // #import - +#import "QXServiceModel.h" NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger) { + /// 等级 + QXMineServiceTypeLevel = 40, + /// 个性装扮 + QXMineServiceTypeDress = 41, + /// 我的背包 + QXMineServiceTypeBackpack = 42, + /// 设置 + QXMineServiceTypeSetting = 43, + /// 帮助中心 + QXMineServiceTypeHelp = 44, + /// 邀请 + QXMineServiceTypeInvite = 45, + /// 每日任务 + QXMineServiceTypeDayTask = 46, + /// 意见反馈 + QXMineServiceTypeReport = 47, + /// 个税客服 + QXMineServiceTypeCustomerService = 48, +}QXMineServiceType; @protocol QXMineServiceCellDelegate @optional --(void)didClickServiceWithBtn:(UIButton*)button title:(NSString*)title; +-(void)didClickServiceWithType:(QXMineServiceType)type; @end @interface QXMineServiceCell : UITableViewCell @property (nonatomic,weak)iddelegate; --(void)cellReload; +@property (nonatomic,assign)BOOL isMore; +(instancetype)cellWithTableView:(UITableView *)tableView; @end @@ -24,7 +44,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,strong)UIImageView *imageView; @property (nonatomic,strong)UILabel *titleLabel; - +@property (nonatomic,strong)QXServiceModel *model; @end diff --git a/QXLive/Mine(音域)/View/QXMineServiceCell.m b/QXLive/Mine(音域)/View/QXMineServiceCell.m index dc99230..ed7d7fc 100644 --- a/QXLive/Mine(音域)/View/QXMineServiceCell.m +++ b/QXLive/Mine(音域)/View/QXMineServiceCell.m @@ -6,13 +6,15 @@ // #import "QXMineServiceCell.h" + @class QXMineServiceSubCell; @interface QXMineServiceCell() @property (nonatomic,strong)UIView *bgView; @property (nonatomic,strong)UILabel *titleLabel; @property (nonatomic,strong)UICollectionView *collectionView; @property (nonatomic,strong)NSMutableArray *serviceArray; -@property (nonatomic,strong)NSMutableArray *serviceImageArray; +@property (nonatomic,strong)NSMutableArray *moreArray; +@property (nonatomic,strong)QXServiceModel *inviteModel; @end @implementation QXMineServiceCell @@ -34,24 +36,25 @@ } -(void)createViews{ self.bgView = [[UIView alloc] init]; - self.bgView.backgroundColor = [UIColor whiteColor]; + self.bgView.backgroundColor = RGB16(0x231F2C); [self.bgView addRoundedCornersWithRadius:10]; [self.contentView addSubview:self.bgView]; [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(16); make.right.mas_equalTo(-16); - make.top.bottom.equalTo(self); + make.top.mas_equalTo(6); + make.bottom.mas_equalTo(-6); }]; self.titleLabel = [[UILabel alloc] init]; - self.titleLabel.font = [UIFont boldSystemFontOfSize:16]; - self.titleLabel.textColor = QXConfig.textColor; + self.titleLabel.font = [UIFont boldSystemFontOfSize:14]; + self.titleLabel.textColor = RGB16(0x929196); self.titleLabel.text = QXText(@"更多服务"); [self.bgView addSubview:self.titleLabel];; [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.left.mas_equalTo(12); make.right.mas_equalTo(-12); - make.height.mas_equalTo(24); + make.height.mas_equalTo(16); }]; @@ -69,14 +72,13 @@ self.collectionView.delegate = self; self.collectionView.dataSource = self; self.collectionView.showsHorizontalScrollIndicator = NO; - self.collectionView.bounces = NO; + self.collectionView.scrollEnabled = NO; self.collectionView.backgroundColor = UIColor.clearColor; [self.bgView addSubview:self.collectionView]; [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.bgView); - make.top.equalTo(self.titleLabel.mas_bottom).offset(22); - make.height.mas_equalTo(btnHeight*2+10); -// make.right.mas_equalTo(-12); + make.top.equalTo(self.titleLabel.mas_bottom).offset(12); + make.bottom.mas_equalTo(-12); }]; @@ -101,23 +103,32 @@ // // } } --(void)serviceClick:(UIButton*)sender{ - if (self.delegate && [self.delegate respondsToSelector:@selector(didClickServiceWithBtn:title:)]) { - [self.delegate didClickServiceWithBtn:sender title:sender.titleLabel.text]; + +-(void)setIsMore:(BOOL)isMore{ + _isMore = isMore; + self.titleLabel.text = isMore?@"更多":@"常用服务"; + if (isMore) { + if ([self.moreArray containsObject:self.inviteModel]) { + return; + } + if (QXGlobal.shareGlobal.isOpenRecharge) { + [self.moreArray insertObject:self.inviteModel atIndex:1]; + } } } -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ - return self.serviceArray.count; + return self.isMore?self.moreArray.count:self.serviceArray.count; } -(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ QXMineServiceSubCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXMineServiceSubCell" forIndexPath:indexPath]; - cell.imageView.image = [UIImage imageNamed:self.serviceImageArray[indexPath.row]]; - cell.titleLabel.text = self.serviceArray[indexPath.row]; + QXServiceModel *model = self.isMore?self.moreArray[indexPath.row]:self.serviceArray[indexPath.row]; + cell.model = model; return cell; } -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ - if (self.delegate && [self.delegate respondsToSelector:@selector(didClickServiceWithBtn:title:)]) { - [self.delegate didClickServiceWithBtn:nil title:self.serviceArray[indexPath.row]]; + if (self.delegate && [self.delegate respondsToSelector:@selector(didClickServiceWithType:)]) { + QXServiceModel *model = self.isMore?self.moreArray[indexPath.row]:self.serviceArray[indexPath.row]; + [self.delegate didClickServiceWithType:model.type]; } } @@ -133,32 +144,76 @@ } -(NSMutableArray *)serviceArray{ if (!_serviceArray) { + QXServiceModel *md1 = [[QXServiceModel alloc] init]; + md1.title = @"等级"; + md1.icon = @"service_level"; + md1.type = QXMineServiceTypeLevel; + + QXServiceModel *md2 = [[QXServiceModel alloc] init]; + md2.title = @"个性装扮"; + md2.icon = @"service_dress"; + md2.type = QXMineServiceTypeDress; + + QXServiceModel *md3 = [[QXServiceModel alloc] init]; + md3.title = @"我的背包"; + md3.icon = @"service_bag"; + md3.type = QXMineServiceTypeBackpack; + + QXServiceModel *md4 = [[QXServiceModel alloc] init]; + md4.title = @"设置"; + md4.icon = @"service_setting"; + md4.type = QXMineServiceTypeSetting; + + _serviceArray = [NSMutableArray arrayWithArray:@[ - QXText(@"钱包"), - QXText(@"段位"), - QXText(@"公会中心"), - QXText(@"个性装扮"), - QXText(@"道具商城"), - QXText(@"我的背包"), - QXText(@"每日任务") + md1, + md2, + md3, + md4, ]]; } return _serviceArray; } --(NSMutableArray *)serviceImageArray{ - if (!_serviceImageArray) { - _serviceImageArray = [NSMutableArray arrayWithArray:@[ - @"service_wallet", - @"service_level", - @"service_guild", - @"service_dress", - @"service_shop", - @"service_bag", - @"service_task" +-(NSMutableArray *)moreArray{ + if (!_moreArray) { + QXServiceModel *md1 = [[QXServiceModel alloc] init]; + md1.title = @"帮助中心"; + md1.icon = @"service_help"; + md1.type = QXMineServiceTypeHelp; + + QXServiceModel *md2 = [[QXServiceModel alloc] init]; + md2.title = @"每日任务"; + md2.icon = @"service_task"; + md2.type = QXMineServiceTypeDayTask; + + QXServiceModel *md3 = [[QXServiceModel alloc] init]; + md3.title = @"意见反馈"; + md3.icon = @"service_bag"; + md3.type = QXMineServiceTypeReport; + + QXServiceModel *md4 = [[QXServiceModel alloc] init]; + md4.title = @"个税客服"; + md4.icon = @"service_customer_service"; + md4.type = QXMineServiceTypeCustomerService; + + _moreArray = [NSMutableArray arrayWithArray:@[ + md1, + md2, + md3, + md4, ]]; } - return _serviceImageArray; + return _moreArray; +} +-(QXServiceModel *)inviteModel{ + if (!_inviteModel) { + _inviteModel = [[QXServiceModel alloc] init]; + _inviteModel.title = @"邀请"; + _inviteModel.icon = @"service_invite"; + _inviteModel.type = QXMineServiceTypeInvite; + } + return _inviteModel; } - (void)awakeFromNib { [super awakeFromNib]; @@ -184,17 +239,22 @@ } return self; } +-(void)setModel:(QXServiceModel *)model{ + _model = model; + self.imageView.image = [UIImage imageNamed:model.icon]; + self.titleLabel.text = model.title; +} -(void)initSubviews{ UIImageView *imageView = [[UIImageView alloc] init]; [self.contentView addSubview:imageView]; self.imageView = imageView; [imageView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.centerX.equalTo(self.contentView); - make.height.width.mas_equalTo(18); + make.height.width.mas_equalTo(ScaleWidth(24)); }]; UILabel *titleLabel = [[UILabel alloc] init]; - titleLabel.textColor = QXConfig.textColor; + titleLabel.textColor = RGB16(0x929196); titleLabel.font = [UIFont systemFontOfSize:12]; [self.contentView addSubview:titleLabel]; self.titleLabel = titleLabel; diff --git a/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.h b/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.h new file mode 100644 index 0000000..ab7cdc8 --- /dev/null +++ b/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.h @@ -0,0 +1,27 @@ +// +// QXMineGiftWallCell.h +// QXLive +// +// Created by 启星 on 2025/11/5. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface QXMineGiftWallCell : UICollectionViewCell +@property (weak, nonatomic) IBOutlet UIImageView *bgImageView; +@property (weak, nonatomic) IBOutlet UILabel *countLabel; +@property (weak, nonatomic) IBOutlet UILabel *nameLabel; +@property (weak, nonatomic) IBOutlet UIImageView *giftImageView; +@property (weak, nonatomic) IBOutlet UIImageView *userImageView1; +@property (weak, nonatomic) IBOutlet UIImageView *userImageView2; +@property (weak, nonatomic) IBOutlet UIImageView *userImageView3; +@property (weak, nonatomic) IBOutlet UILabel *userCountLabel; +@property (weak, nonatomic) IBOutlet UIButton *giftCoinBtn; + +@property (nonatomic,assign)BOOL isLight; +@property (nonatomic,strong)QXUserGiftWallModel *model; +@end + +NS_ASSUME_NONNULL_END diff --git a/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.m b/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.m new file mode 100644 index 0000000..ca0c16c --- /dev/null +++ b/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.m @@ -0,0 +1,106 @@ +// +// QXMineGiftWallCell.m +// QXLive +// +// Created by 启星 on 2025/11/5. +// + +#import "QXMineGiftWallCell.h" +#import +@implementation QXMineGiftWallCell +-(void)setIsLight:(BOOL)isLight{ + _isLight = isLight; + self.bgImageView.image = [UIImage imageNamed:isLight?@"user_giftwall_light":@"user_giftwall_gray"]; +// if (isLight) { +// self.userCountLabel.hidden = NO; +// }else{ +// self.userCountLabel.hidden = YES; +// self.userImageView1.hidden = YES; +// self.userImageView2.hidden = YES; +// self.userImageView3.hidden = YES; +// } +} + + +- (UIImage *)convertImageToGrayWithCoreImage:(UIImage *)inputImage { + CIImage *ciImage = [[CIImage alloc] initWithImage:inputImage]; + + // 使用黑白滤镜 + CIFilter *grayFilter = [CIFilter filterWithName:@"CIColorControls"]; + [grayFilter setValue:ciImage forKey:kCIInputImageKey]; + [grayFilter setValue:@(0.0) forKey:kCIInputSaturationKey]; // 饱和度设为0即为灰色 + + CIImage *outputImage = [grayFilter valueForKey:kCIOutputImageKey]; + + CIContext *context = [CIContext contextWithOptions:nil]; + CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]]; + + UIImage *grayImage = [UIImage imageWithCGImage:cgImage]; + CGImageRelease(cgImage); + + return grayImage; +} + +-(void)setModel:(QXUserGiftWallModel *)model{ + _model = model; + self.countLabel.text = [NSString stringWithFormat:@"共计%@个",model.total_count]; + [self.giftImageView sd_setImageWithURL:[NSURL URLWithString:model.base_image] placeholderImage:nil completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) { + if (!self.isLight) { + image = [self convertImageToGrayWithCoreImage:image]; + } + self.giftImageView.image = image; + }]; + self.nameLabel.text = model.gift_name; + [self.giftCoinBtn setTitle:[NSString stringWithFormat:@" %@",model.gift_price] forState:(UIControlStateNormal)]; + self.userCountLabel.text = [NSString stringWithFormat:@"等%@人",model.top_users_count]; + + if (model.top_users.count > 0) { + self.countLabel.hidden = NO; + self.userCountLabel.hidden = NO; + QXUserHomeModel *md1; + QXUserHomeModel *md2; + QXUserHomeModel *md3; + if (model.top_users.count >= 3){ + self.userImageView1.hidden = NO; + self.userImageView2.hidden = NO; + self.userImageView3.hidden = NO; + md1 = model.top_users[0]; + md2 = model.top_users[1]; + md3 = model.top_users[2]; + [self.userImageView1 sd_setImageWithURL:[NSURL URLWithString:md1.avatar]]; + [self.userImageView2 sd_setImageWithURL:[NSURL URLWithString:md2.avatar]]; + [self.userImageView3 sd_setImageWithURL:[NSURL URLWithString:md3.avatar]]; + return; + }else if (model.top_users.count == 2){ + self.userImageView1.hidden = NO; + self.userImageView2.hidden = NO; + self.userImageView3.hidden = YES; + md1 = model.top_users[0]; + md2 = model.top_users[1]; + [self.userImageView1 sd_setImageWithURL:[NSURL URLWithString:md1.avatar]]; + [self.userImageView2 sd_setImageWithURL:[NSURL URLWithString:md2.avatar]]; + return; + }else{ + self.userImageView1.hidden = NO; + self.userImageView2.hidden = YES; + self.userImageView3.hidden = YES; + md1 = model.top_users[0]; + [self.userImageView1 sd_setImageWithURL:[NSURL URLWithString:md1.avatar]]; + } + + }else{ + self.countLabel.hidden = YES; + self.userCountLabel.hidden = YES; + self.userImageView1.hidden = YES; + self.userImageView2.hidden = YES; + self.userImageView3.hidden = YES; + } + + +} +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +@end diff --git a/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.xib b/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.xib new file mode 100644 index 0000000..0a2b0c3 --- /dev/null +++ b/QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.xib @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/Contents.json similarity index 75% rename from QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Contents.json rename to QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/Contents.json index 1331e58..9126378 100644 --- a/QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Store@2x.png", + "filename" : "mine_edit_btn@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Store@3x.png", + "filename" : "mine_edit_btn@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/mine_edit_btn@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/mine_edit_btn@2x.png new file mode 100644 index 0000000..9e747b6 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/mine_edit_btn@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/mine_edit_btn@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/mine_edit_btn@3x.png new file mode 100644 index 0000000..0a0b050 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/mine_edit_btn@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Contents.json index c69054c..0dbbd31 100644 --- a/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Mask group@2x.png", + "filename" : "mine_header_room@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Mask group@3x.png", + "filename" : "mine_header_room@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Mask group@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Mask group@2x.png deleted file mode 100644 index ee38cd3..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Mask group@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Mask group@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Mask group@3x.png deleted file mode 100644 index 060b07e..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/Mask group@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/mine_header_room@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/mine_header_room@2x.png new file mode 100644 index 0000000..73f0a1f Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/mine_header_room@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/mine_header_room@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/mine_header_room@3x.png new file mode 100644 index 0000000..32550cd Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/mine_header_room@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/Contents.json new file mode 100644 index 0000000..a94c10d --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mine_nobility_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mine_nobility_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/mine_nobility_bg@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/mine_nobility_bg@2x.png new file mode 100644 index 0000000..da8e1b4 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/mine_nobility_bg@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/mine_nobility_bg@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/mine_nobility_bg@3x.png new file mode 100644 index 0000000..b1adaf9 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/mine_nobility_bg@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Contents.json index 5c4d3b1..dd64af3 100644 --- a/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Frame@2x.png", + "filename" : "mine_redbag@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Frame@3x.png", + "filename" : "mine_redbag@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Frame@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Frame@2x.png deleted file mode 100644 index 2776942..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Frame@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Frame@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Frame@3x.png deleted file mode 100644 index 754d116..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/Frame@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/mine_redbag@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/mine_redbag@2x.png new file mode 100644 index 0000000..3da9be6 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/mine_redbag@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/mine_redbag@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/mine_redbag@3x.png new file mode 100644 index 0000000..52e3846 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/mine_redbag@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/Contents.json index 0aacdbf..c2f3f57 100644 --- a/QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Setting@2x.png", + "filename" : "mine_setting@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Setting@3x.png", + "filename" : "mine_setting@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/Setting@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/mine_setting@2x.png similarity index 100% rename from QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/Setting@2x.png rename to QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/mine_setting@2x.png diff --git a/QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/Setting@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/mine_setting@3x.png similarity index 100% rename from QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/Setting@3x.png rename to QXLive/Other/Assets.xcassets/mine/mine_setting.imageset/mine_setting@3x.png diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/Contents.json new file mode 100644 index 0000000..5814f99 --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mine_tools_friend@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mine_tools_friend@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/mine_tools_friend@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/mine_tools_friend@2x.png new file mode 100644 index 0000000..fdfb66c Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/mine_tools_friend@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/mine_tools_friend@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/mine_tools_friend@3x.png new file mode 100644 index 0000000..a21617c Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/mine_tools_friend@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/Contents.json new file mode 100644 index 0000000..b82ca1c --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mine_tools_guild@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mine_tools_guild@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/mine_tools_guild@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/mine_tools_guild@2x.png new file mode 100644 index 0000000..d3fd1d7 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/mine_tools_guild@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/mine_tools_guild@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/mine_tools_guild@3x.png new file mode 100644 index 0000000..b8a44e9 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/mine_tools_guild@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/Contents.json new file mode 100644 index 0000000..d44459f --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mine_tools_recharge@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mine_tools_recharge@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/mine_tools_recharge@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/mine_tools_recharge@2x.png new file mode 100644 index 0000000..85a846e Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/mine_tools_recharge@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/mine_tools_recharge@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/mine_tools_recharge@3x.png new file mode 100644 index 0000000..1c54aed Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/mine_tools_recharge@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/Contents.json new file mode 100644 index 0000000..5bbe61b --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mine_tools_room@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mine_tools_room@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/mine_tools_room@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/mine_tools_room@2x.png new file mode 100644 index 0000000..42cd446 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/mine_tools_room@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/mine_tools_room@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/mine_tools_room@3x.png new file mode 100644 index 0000000..c0d6be4 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/mine_tools_room@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/Contents.json new file mode 100644 index 0000000..e2c020d --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "mine_tools_shop@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "mine_tools_shop@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/mine_tools_shop@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/mine_tools_shop@2x.png new file mode 100644 index 0000000..ab5e576 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/mine_tools_shop@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/mine_tools_shop@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/mine_tools_shop@3x.png new file mode 100644 index 0000000..af393c1 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/mine_tools_shop@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Contents.json index c69054c..996167a 100644 --- a/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Mask group@2x.png", + "filename" : "mine_usercode_isLiang@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Mask group@3x.png", + "filename" : "mine_usercode_isLiang@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Mask group@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Mask group@2x.png deleted file mode 100644 index 5e332b6..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Mask group@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Mask group@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Mask group@3x.png deleted file mode 100644 index e72f74e..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/Mask group@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/mine_usercode_isLiang@2x.png b/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/mine_usercode_isLiang@2x.png new file mode 100644 index 0000000..bc3a0b9 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/mine_usercode_isLiang@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/mine_usercode_isLiang@3x.png b/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/mine_usercode_isLiang@3x.png new file mode 100644 index 0000000..3e33919 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/mine_usercode_isLiang@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Contents.json index 5c4d3b1..b90b2d3 100644 --- a/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Frame@2x.png", + "filename" : "service_bag@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Frame@3x.png", + "filename" : "service_bag@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Frame@2x.png b/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Frame@2x.png deleted file mode 100644 index faea98e..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Frame@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Frame@3x.png b/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Frame@3x.png deleted file mode 100644 index fd62328..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/Frame@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/service_bag@2x.png b/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/service_bag@2x.png new file mode 100644 index 0000000..4c87c75 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/service_bag@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/service_bag@3x.png b/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/service_bag@3x.png new file mode 100644 index 0000000..04b5f5c Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_bag.imageset/service_bag@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/Contents.json new file mode 100644 index 0000000..3caa41b --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "service_customer_service@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "service_customer_service@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/service_customer_service@2x.png b/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/service_customer_service@2x.png new file mode 100644 index 0000000..64a4c98 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/service_customer_service@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/service_customer_service@3x.png b/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/service_customer_service@3x.png new file mode 100644 index 0000000..8b9b69f Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/service_customer_service@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Contents.json index 5c4d3b1..3aba39a 100644 --- a/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Frame@2x.png", + "filename" : "service_dress@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Frame@3x.png", + "filename" : "service_dress@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Frame@2x.png b/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Frame@2x.png deleted file mode 100644 index d59a592..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Frame@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Frame@3x.png b/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Frame@3x.png deleted file mode 100644 index 9ff26bc..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/Frame@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/service_dress@2x.png b/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/service_dress@2x.png new file mode 100644 index 0000000..ac137d6 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/service_dress@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/service_dress@3x.png b/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/service_dress@3x.png new file mode 100644 index 0000000..3c8089f Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_dress.imageset/service_dress@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Home@2x.png b/QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Home@2x.png deleted file mode 100644 index 484e8a5..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Home@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Home@3x.png b/QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Home@3x.png deleted file mode 100644 index 2038bfe..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Home@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_help.imageset/Contents.json similarity index 76% rename from QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Contents.json rename to QXLive/Other/Assets.xcassets/mine/service_help.imageset/Contents.json index acea023..219e63c 100644 --- a/QXLive/Other/Assets.xcassets/mine/service_guild.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/service_help.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Home@2x.png", + "filename" : "service_help@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Home@3x.png", + "filename" : "service_help@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/service_help.imageset/service_help@2x.png b/QXLive/Other/Assets.xcassets/mine/service_help.imageset/service_help@2x.png new file mode 100644 index 0000000..5e147e4 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_help.imageset/service_help@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_help.imageset/service_help@3x.png b/QXLive/Other/Assets.xcassets/mine/service_help.imageset/service_help@3x.png new file mode 100644 index 0000000..fc197b1 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_help.imageset/service_help@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_invite.imageset/Contents.json similarity index 75% rename from QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Contents.json rename to QXLive/Other/Assets.xcassets/mine/service_invite.imageset/Contents.json index 8e7c295..4968254 100644 --- a/QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/service_invite.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Wallet@2x.png", + "filename" : "service_invite@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Wallet@3x.png", + "filename" : "service_invite@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/service_invite.imageset/service_invite@2x.png b/QXLive/Other/Assets.xcassets/mine/service_invite.imageset/service_invite@2x.png new file mode 100644 index 0000000..13e59ad Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_invite.imageset/service_invite@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_invite.imageset/service_invite@3x.png b/QXLive/Other/Assets.xcassets/mine/service_invite.imageset/service_invite@3x.png new file mode 100644 index 0000000..d0c8e49 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_invite.imageset/service_invite@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Award, Trophy@2x.png b/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Award, Trophy@2x.png deleted file mode 100644 index dcb8963..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Award, Trophy@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Award, Trophy@3x.png b/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Award, Trophy@3x.png deleted file mode 100644 index 0c5076b..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Award, Trophy@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Contents.json index b9cfe88..c9a0980 100644 --- a/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/service_level.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Award, Trophy@2x.png", + "filename" : "service_level@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Award, Trophy@3x.png", + "filename" : "service_level@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/service_level.imageset/service_level@2x.png b/QXLive/Other/Assets.xcassets/mine/service_level.imageset/service_level@2x.png new file mode 100644 index 0000000..d7b6670 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_level.imageset/service_level@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_level.imageset/service_level@3x.png b/QXLive/Other/Assets.xcassets/mine/service_level.imageset/service_level@3x.png new file mode 100644 index 0000000..687bf32 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_level.imageset/service_level@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_report.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_report.imageset/Contents.json new file mode 100644 index 0000000..bc3afdf --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/service_report.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "service_report@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "service_report@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/service_report.imageset/service_report@2x.png b/QXLive/Other/Assets.xcassets/mine/service_report.imageset/service_report@2x.png new file mode 100644 index 0000000..81f691a Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_report.imageset/service_report@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_report.imageset/service_report@3x.png b/QXLive/Other/Assets.xcassets/mine/service_report.imageset/service_report@3x.png new file mode 100644 index 0000000..cf16d1e Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_report.imageset/service_report@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/Contents.json new file mode 100644 index 0000000..960ec60 --- /dev/null +++ b/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "service_setting@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "service_setting@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/service_setting@2x.png b/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/service_setting@2x.png new file mode 100644 index 0000000..7ae699e Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/service_setting@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/service_setting@3x.png b/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/service_setting@3x.png new file mode 100644 index 0000000..76ff254 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_setting.imageset/service_setting@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Store@2x.png b/QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Store@2x.png deleted file mode 100644 index cf21f3c..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Store@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Store@3x.png b/QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Store@3x.png deleted file mode 100644 index 2359261..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_shop.imageset/Store@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Contents.json b/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Contents.json index 5c4d3b1..5cc35a3 100644 --- a/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Contents.json +++ b/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Contents.json @@ -5,12 +5,12 @@ "scale" : "1x" }, { - "filename" : "Frame@2x.png", + "filename" : "service_task@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "Frame@3x.png", + "filename" : "service_task@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Frame@2x.png b/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Frame@2x.png deleted file mode 100644 index 8aa6444..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Frame@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Frame@3x.png b/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Frame@3x.png deleted file mode 100644 index a3ac671..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_task.imageset/Frame@3x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_task.imageset/service_task@2x.png b/QXLive/Other/Assets.xcassets/mine/service_task.imageset/service_task@2x.png new file mode 100644 index 0000000..635747c Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_task.imageset/service_task@2x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_task.imageset/service_task@3x.png b/QXLive/Other/Assets.xcassets/mine/service_task.imageset/service_task@3x.png new file mode 100644 index 0000000..8e6fcd2 Binary files /dev/null and b/QXLive/Other/Assets.xcassets/mine/service_task.imageset/service_task@3x.png differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Wallet@2x.png b/QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Wallet@2x.png deleted file mode 100644 index 11e34a6..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Wallet@2x.png and /dev/null differ diff --git a/QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Wallet@3x.png b/QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Wallet@3x.png deleted file mode 100644 index 72a33d8..0000000 Binary files a/QXLive/Other/Assets.xcassets/mine/service_wallet.imageset/Wallet@3x.png and /dev/null differ diff --git a/QXLive/Room(房间)/View/QXRoomChatListView.m b/QXLive/Room(房间)/View/QXRoomChatListView.m index 7cdfd68..0f3d261 100644 --- a/QXLive/Room(房间)/View/QXRoomChatListView.m +++ b/QXLive/Room(房间)/View/QXRoomChatListView.m @@ -202,8 +202,14 @@ NSInteger maxMessageCount = 20; // [self.giftArray removeFirstObject]; // } #if DEBUG - if (model.messageType == QXRoomChatMessageTypeGift || model.messageType == QXRoomChatMessageTypeSystem) { - AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:model.text]; + if (model.messageType == QXRoomChatMessageTypeGift || model.messageType == QXRoomChatMessageTypeSystem || model.messageType == QXRoomChatMessageTypeChat) { + NSString *text = @""; + if (model.messageType == QXRoomChatMessageTypeGift || model.messageType == QXRoomChatMessageTypeSystem) { + text = model.text; + }else{ + text = [NSString stringWithFormat:@"%@说:%@",model.FromUserInfo.nickname,model.text]; + } + AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:text]; utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"]; utterance.rate = 0.5 ; utterance.pitchMultiplier = 1.0 ; diff --git a/QXLive/Tabbar/QXTabbarController.m b/QXLive/Tabbar/QXTabbarController.m index f26c587..024e703 100644 --- a/QXLive/Tabbar/QXTabbarController.m +++ b/QXLive/Tabbar/QXTabbarController.m @@ -228,7 +228,7 @@ [self presentViewController:na animated:YES completion:nil]; return; } - if (to == 0) { + if (to == 0 || to == 3) { self.customTabBar.backgroundColor = RGB16(0x221E2B); }else{ self.customTabBar.backgroundColor = RGB16(0xffffff); diff --git a/QXLive/Tools/Category/UIImage+QX.h b/QXLive/Tools/Category/UIImage+QX.h index b1d78c3..f097589 100644 --- a/QXLive/Tools/Category/UIImage+QX.h +++ b/QXLive/Tools/Category/UIImage+QX.h @@ -31,7 +31,13 @@ typedef NS_ENUM(NSUInteger, GradientType) { + (UIImage *)qx_convertViewToImageWith:(UIView *)view; + (UIImage *)qx_gradientColorImageFromColors:(NSArray*)colors gradientType:(GradientType)gradientType imgSize:(CGSize)imgSize; +/** + 传入一张图片将图片改为灰色 + @param inputImage 传入图片 + @return 生成的UIImage + */ ++ (UIImage *)qx_convertImageToGrayWithCoreImage:(UIImage *)inputImage; /** 根据颜色,生成UIImage对象 diff --git a/QXLive/Tools/Category/UIImage+QX.m b/QXLive/Tools/Category/UIImage+QX.m index 647c90a..a5358d7 100644 --- a/QXLive/Tools/Category/UIImage+QX.m +++ b/QXLive/Tools/Category/UIImage+QX.m @@ -42,7 +42,24 @@ return image; } - ++ (UIImage *)qx_convertImageToGrayWithCoreImage:(UIImage *)inputImage { + CIImage *ciImage = [[CIImage alloc] initWithImage:inputImage]; + + // 使用黑白滤镜 + CIFilter *grayFilter = [CIFilter filterWithName:@"CIColorControls"]; + [grayFilter setValue:ciImage forKey:kCIInputImageKey]; + [grayFilter setValue:@(0.0) forKey:kCIInputSaturationKey]; // 饱和度设为0即为灰色 + + CIImage *outputImage = [grayFilter valueForKey:kCIOutputImageKey]; + + CIContext *context = [CIContext contextWithOptions:nil]; + CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]]; + + UIImage *grayImage = [UIImage imageWithCGImage:cgImage]; + CGImageRelease(cgImage); + + return grayImage; +} + (UIImage *)qx_gradientColorImageFromColors:(NSArray *)colors gradientType:(GradientType)gradientType imgSize:(CGSize)imgSize { NSMutableArray *ar = [NSMutableArray array]; for (UIColor *c in colors) {