我的
@@ -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;
|
||||
|
||||
@@ -19,9 +19,13 @@
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view.
|
||||
[self.view insertSubview:self.bgImageView atIndex:0];
|
||||
if (self.isNoChangeBgImage) {
|
||||
/// 不参与换肤
|
||||
}else{
|
||||
[self updateBgImage:QXConfig.backgroundImage];
|
||||
[self initSubViews];
|
||||
}
|
||||
[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)];
|
||||
|
||||
@@ -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"];
|
||||
}
|
||||
UIImageView *logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yusheng"]];
|
||||
[self.view addSubview:logoImageView];
|
||||
[logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
|
||||
@@ -29,19 +29,23 @@
|
||||
#import "QXInviteViewController.h"
|
||||
#import "QXChatViewController.h"
|
||||
#import "QXWalletRuleView.h"
|
||||
#import "QXRechargeViewcController.h"
|
||||
#import "QXGiftWallViewController.h"
|
||||
#import <WXApi.h>
|
||||
|
||||
@interface QXMineViewController ()<UITableViewDelegate,UITableViewDataSource,QXMineServiceCellDelegate,QXMainHeaderViewDelegate>
|
||||
@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];
|
||||
QXLOG(@"点击了%@",title);
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
-(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
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
self.categoryView.listContainer = (id<JXCategoryViewListContainer>)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)];
|
||||
|
||||
19
QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallSubViewController.h
Normal file
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// QXGiftWallSubViewController.h
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/5.
|
||||
//
|
||||
|
||||
#import "QXBaseViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface QXGiftWallSubViewController : QXBaseViewController<JXCategoryListContentViewDelegate>
|
||||
/// 是否为已点亮
|
||||
@property(nonatomic,assign)BOOL isLight;
|
||||
/// 数据源
|
||||
@property(nonatomic,strong)NSArray<QXUserGiftWallModel*> *giftArray;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
62
QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallSubViewController.m
Normal file
@@ -0,0 +1,62 @@
|
||||
//
|
||||
// QXGiftWallSubViewController.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/5.
|
||||
//
|
||||
|
||||
#import "QXGiftWallSubViewController.h"
|
||||
#import "QXMineGiftWallCell.h"
|
||||
|
||||
@interface QXGiftWallSubViewController ()<UICollectionViewDelegate,UICollectionViewDataSource>
|
||||
@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<QXUserGiftWallModel *> *)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
|
||||
16
QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallViewController.h
Normal file
@@ -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
|
||||
118
QXLive/Mine(音域)/Controller/礼物墙/QXGiftWallViewController.m
Normal file
@@ -0,0 +1,118 @@
|
||||
//
|
||||
// QXGiftWallViewController.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/5.
|
||||
//
|
||||
|
||||
#import "QXGiftWallViewController.h"
|
||||
#import "QXGiftWallSubViewController.h"
|
||||
#import "QXMineNetwork.h"
|
||||
|
||||
@interface QXGiftWallViewController ()<JXCategoryViewDelegate,JXCategoryListContainerViewDelegate>
|
||||
@property (nonatomic,strong)JXCategoryTitleView *categoryView;
|
||||
@property (nonatomic,strong)JXCategoryListContainerView *containerView;
|
||||
@property (nonatomic,strong)NSMutableArray <UIViewController*>*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<QXUserGiftWallModel *> * _Nonnull lightList, NSArray<QXUserGiftWallModel *> * _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<JXCategoryListContentViewDelegate>)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
|
||||
21
QXLive/Mine(音域)/Model/QXServiceModel.h
Normal file
@@ -0,0 +1,21 @@
|
||||
//
|
||||
// QXServiceModel.h
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/4.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
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
|
||||
12
QXLive/Mine(音域)/Model/QXServiceModel.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// QXServiceModel.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/4.
|
||||
//
|
||||
|
||||
#import "QXServiceModel.h"
|
||||
|
||||
@implementation QXServiceModel
|
||||
|
||||
@end
|
||||
@@ -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 <NSObject>
|
||||
|
||||
@@ -50,6 +55,10 @@ typedef NS_ENUM(NSInteger) {
|
||||
@interface QXMainHeaderView : UIView
|
||||
@property (nonatomic,weak)id<QXMainHeaderViewDelegate>delegate;
|
||||
@property (nonatomic,strong)QXUserModel *userModel;
|
||||
@property (nonatomic,strong)NSString *earnings;
|
||||
@property (nonatomic,strong)NSString *coin;
|
||||
-(void)reloadData;
|
||||
-(CGFloat)getHeight;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -8,27 +8,55 @@
|
||||
#import "QXMainHeaderView.h"
|
||||
#import "QXSeatHeaderView.h"
|
||||
#import "CKShimmerLabel.h"
|
||||
#import "QXMineHomeToolsCell.h"
|
||||
#import "QXServiceModel.h"
|
||||
#import <SDCycleScrollView/SDCycleScrollView.h>
|
||||
|
||||
@interface QXMainHeaderView()
|
||||
@interface QXMainHeaderView()<UICollectionViewDelegate,UICollectionViewDataSource,SDCycleScrollViewDelegate>
|
||||
@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<userModel.icon.count;i++) {
|
||||
NSString*icon = userModel.icon[i];
|
||||
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.nameLabel.left+i*UserIconWidth, self.idLabel.bottom+5, UserIconWidth, UserIconHeight)];
|
||||
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.nameLabel.left+i*UserIconWidth, self.userHeaderView.bottom-5-UserIconHeight, UserIconWidth, UserIconHeight)];
|
||||
[imageView sd_setImageWithURL:[NSURL URLWithString:icon]];
|
||||
[self addSubview:imageView];
|
||||
[self.iconArray addObject:imageView];
|
||||
@@ -239,4 +375,44 @@
|
||||
}
|
||||
return _iconArray;
|
||||
}
|
||||
-(NSMutableArray *)toolsArray{
|
||||
if (!_toolsArray) {
|
||||
|
||||
QXServiceModel *md2 = [[QXServiceModel alloc] init];
|
||||
md2.title = @"商城";
|
||||
md2.icon = @"mine_tools_shop";
|
||||
md2.type = QXMainHeaderOptionTypeShop;
|
||||
|
||||
QXServiceModel *md3 = [[QXServiceModel alloc] init];
|
||||
md3.title = @"公会";
|
||||
md3.icon = @"mine_tools_guild";
|
||||
md3.type = QXMainHeaderOptionTypeGuild;
|
||||
|
||||
QXServiceModel *md4 = [[QXServiceModel alloc] init];
|
||||
md4.title = @"挚友";
|
||||
md4.icon = @"mine_tools_friend";
|
||||
md4.type = QXMainHeaderOptionTypeFriend;
|
||||
|
||||
QXServiceModel *md5 = [[QXServiceModel alloc] init];
|
||||
md5.title = @"房间";
|
||||
md5.icon = @"mine_tools_room";
|
||||
md5.type = QXMainHeaderOptionTypeRoom;
|
||||
_toolsArray = [NSMutableArray arrayWithArray:@[
|
||||
md2,
|
||||
md3,
|
||||
md4,
|
||||
md5
|
||||
]];
|
||||
}
|
||||
return _toolsArray;
|
||||
}
|
||||
-(QXServiceModel *)rechargeModel{
|
||||
if (!_rechargeModel) {
|
||||
_rechargeModel = [[QXServiceModel alloc] init];
|
||||
_rechargeModel.title = @"充值";
|
||||
_rechargeModel.icon = @"mine_tools_recharge";
|
||||
_rechargeModel.type = QXMainHeaderOptionTypeRecharge;
|
||||
}
|
||||
return _rechargeModel;
|
||||
}
|
||||
@end
|
||||
|
||||
18
QXLive/Mine(音域)/View/QXMineHomeToolsCell.h
Normal file
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// QXMineHomeToolsCell.h
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/4.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#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
|
||||
22
QXLive/Mine(音域)/View/QXMineHomeToolsCell.m
Normal file
@@ -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
|
||||
54
QXLive/Mine(音域)/View/QXMineHomeToolsCell.xib
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina6_12" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="QXMineHomeToolsCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="155" height="198"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="0.0" y="0.0" width="155" height="198"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="CQb-0X-F8A">
|
||||
<rect key="frame" x="16" y="37" width="123" height="123"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="CQb-0X-F8A" secondAttribute="height" multiplier="1:1" id="GDf-KK-Dnb"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="A50-91-O1H">
|
||||
<rect key="frame" x="0.0" y="168" width="155" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="18" id="N0k-9B-NpF"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="0.80000000000000004" green="0.80392156862745101" blue="0.78431372549019607" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</view>
|
||||
<viewLayoutGuide key="safeArea" id="SEy-5g-ep8"/>
|
||||
<constraints>
|
||||
<constraint firstItem="CQb-0X-F8A" firstAttribute="centerY" secondItem="SEy-5g-ep8" secondAttribute="centerY" constant="-13" id="Ero-Oq-fFS"/>
|
||||
<constraint firstItem="A50-91-O1H" firstAttribute="top" secondItem="CQb-0X-F8A" secondAttribute="bottom" constant="8" id="PYh-qS-bcb"/>
|
||||
<constraint firstAttribute="trailing" secondItem="CQb-0X-F8A" secondAttribute="trailing" constant="16" id="Po4-xa-acz"/>
|
||||
<constraint firstItem="CQb-0X-F8A" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="16" id="bRx-en-KEu"/>
|
||||
<constraint firstItem="A50-91-O1H" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="dHq-Z7-bcZ"/>
|
||||
<constraint firstAttribute="trailing" secondItem="A50-91-O1H" secondAttribute="trailing" id="wIU-OJ-aKL"/>
|
||||
</constraints>
|
||||
<size key="customSize" width="155" height="300"/>
|
||||
<connections>
|
||||
<outlet property="imageView" destination="CQb-0X-F8A" id="zur-ed-KGg"/>
|
||||
<outlet property="titleLabel" destination="A50-91-O1H" id="3K4-UR-37b"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="219.08396946564883" y="107.74647887323944"/>
|
||||
</collectionViewCell>
|
||||
</objects>
|
||||
</document>
|
||||
@@ -6,17 +6,37 @@
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#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 <NSObject>
|
||||
|
||||
@optional
|
||||
-(void)didClickServiceWithBtn:(UIButton*)button title:(NSString*)title;
|
||||
-(void)didClickServiceWithType:(QXMineServiceType)type;
|
||||
|
||||
@end
|
||||
@interface QXMineServiceCell : UITableViewCell
|
||||
@property (nonatomic,weak)id<QXMineServiceCellDelegate>delegate;
|
||||
-(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
|
||||
|
||||
|
||||
@@ -6,13 +6,15 @@
|
||||
//
|
||||
|
||||
#import "QXMineServiceCell.h"
|
||||
|
||||
@class QXMineServiceSubCell;
|
||||
@interface QXMineServiceCell()<UICollectionViewDelegate,UICollectionViewDataSource>
|
||||
@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;
|
||||
|
||||
27
QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.h
Normal file
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// QXMineGiftWallCell.h
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/5.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
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
|
||||
106
QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.m
Normal file
@@ -0,0 +1,106 @@
|
||||
//
|
||||
// QXMineGiftWallCell.m
|
||||
// QXLive
|
||||
//
|
||||
// Created by 启星 on 2025/11/5.
|
||||
//
|
||||
|
||||
#import "QXMineGiftWallCell.h"
|
||||
#import <CoreImage/CoreImage.h>
|
||||
@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
|
||||
140
QXLive/Mine(音域)/View/礼物墙/QXMineGiftWallCell.xib
Normal file
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina6_12" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="QXMineGiftWallCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="168" height="236"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="0.0" y="0.0" width="168" height="236"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_giftwall_light" translatesAutoresizingMaskIntoConstraints="NO" id="7cD-Zp-duy">
|
||||
<rect key="frame" x="0.0" y="0.0" width="168" height="236"/>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="lFd-KA-CIy">
|
||||
<rect key="frame" x="22" y="17" width="124" height="124"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="lFd-KA-CIy" secondAttribute="height" multiplier="1:1" id="7wf-ev-960"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="共计0个" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Gu5-Ab-anM">
|
||||
<rect key="frame" x="119" y="6" width="39" height="11"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="11" id="VFO-2d-XS3"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="荣耀冠军" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="C99-P7-2Qa">
|
||||
<rect key="frame" x="5" y="143" width="158" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="18" id="flQ-Sl-76q"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="6dg-55-CAQ">
|
||||
<rect key="frame" x="66" y="211" width="18" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="18" id="SU0-l9-dWa"/>
|
||||
<constraint firstAttribute="width" constant="18" id="YcQ-Cd-n5d"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<integer key="value" value="9"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="mxk-cv-aBW">
|
||||
<rect key="frame" x="54" y="211" width="18" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="18" id="Kwg-ZJ-I5s"/>
|
||||
<constraint firstAttribute="height" constant="18" id="xl5-Rc-fQg"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Rfn-Wi-s2Q">
|
||||
<rect key="frame" x="42" y="211" width="18" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="18" id="n8I-xi-ccY"/>
|
||||
<constraint firstAttribute="height" constant="18" id="pmp-Ws-KWh"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="等12人" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5R5-ei-HVw">
|
||||
<rect key="frame" x="90" y="214.66666666666666" width="70" height="11"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="11" id="iAF-7r-aTF"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="wfH-dA-6iW">
|
||||
<rect key="frame" x="5" y="163" width="158" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="18" id="Nbj-v3-IdB"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
<state key="normal" title=" 666" image="mine_live_gift_corn">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<constraints>
|
||||
<constraint firstItem="mxk-cv-aBW" firstAttribute="centerY" secondItem="6dg-55-CAQ" secondAttribute="centerY" id="64c-V4-gA0"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Gu5-Ab-anM" secondAttribute="trailing" constant="10" id="7T4-Ob-NXO"/>
|
||||
<constraint firstItem="C99-P7-2Qa" firstAttribute="top" secondItem="lFd-KA-CIy" secondAttribute="bottom" constant="2" id="EDD-kB-qDv"/>
|
||||
<constraint firstItem="lFd-KA-CIy" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="22" id="Fy1-9f-QQe"/>
|
||||
<constraint firstItem="mxk-cv-aBW" firstAttribute="leading" secondItem="Rfn-Wi-s2Q" secondAttribute="trailing" constant="-6" id="GJa-tY-ixM"/>
|
||||
<constraint firstAttribute="trailing" secondItem="C99-P7-2Qa" secondAttribute="trailing" constant="5" id="GMT-PY-7GW"/>
|
||||
<constraint firstAttribute="trailing" secondItem="wfH-dA-6iW" secondAttribute="trailing" constant="5" id="Gfa-T9-bdP"/>
|
||||
<constraint firstItem="wfH-dA-6iW" firstAttribute="top" secondItem="C99-P7-2Qa" secondAttribute="bottom" constant="2" id="H7F-rR-suC"/>
|
||||
<constraint firstItem="6dg-55-CAQ" firstAttribute="centerX" secondItem="gTV-IL-0wX" secondAttribute="centerX" constant="-9" id="IEG-br-wSV"/>
|
||||
<constraint firstAttribute="bottom" secondItem="6dg-55-CAQ" secondAttribute="bottom" constant="7" id="NPv-mt-kE9"/>
|
||||
<constraint firstItem="Gu5-Ab-anM" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="6" id="NcQ-DB-e4d"/>
|
||||
<constraint firstAttribute="bottom" secondItem="7cD-Zp-duy" secondAttribute="bottom" id="Oct-d8-K8j"/>
|
||||
<constraint firstAttribute="trailing" secondItem="7cD-Zp-duy" secondAttribute="trailing" id="Qa8-XB-CzO"/>
|
||||
<constraint firstItem="7cD-Zp-duy" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="YDV-W0-g0C"/>
|
||||
<constraint firstAttribute="trailing" secondItem="lFd-KA-CIy" secondAttribute="trailing" constant="22" id="YOB-Ja-o1M"/>
|
||||
<constraint firstItem="5R5-ei-HVw" firstAttribute="leading" secondItem="6dg-55-CAQ" secondAttribute="trailing" constant="6" id="Ylg-Ai-WXn"/>
|
||||
<constraint firstItem="wfH-dA-6iW" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="5" id="bRU-wK-9Wa"/>
|
||||
<constraint firstItem="C99-P7-2Qa" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="5" id="ccB-et-MDe"/>
|
||||
<constraint firstItem="5R5-ei-HVw" firstAttribute="centerY" secondItem="6dg-55-CAQ" secondAttribute="centerY" id="fnx-YY-rbh"/>
|
||||
<constraint firstItem="6dg-55-CAQ" firstAttribute="leading" secondItem="mxk-cv-aBW" secondAttribute="trailing" constant="-6" id="mXP-d3-zvO"/>
|
||||
<constraint firstItem="7cD-Zp-duy" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="mZY-P3-rUD"/>
|
||||
<constraint firstAttribute="trailing" secondItem="5R5-ei-HVw" secondAttribute="trailing" constant="8" id="t0r-L7-IXx"/>
|
||||
<constraint firstItem="Rfn-Wi-s2Q" firstAttribute="centerY" secondItem="mxk-cv-aBW" secondAttribute="centerY" id="tKT-zK-45J"/>
|
||||
<constraint firstItem="lFd-KA-CIy" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="17" id="tf1-7W-W8b"/>
|
||||
</constraints>
|
||||
<size key="customSize" width="168" height="236"/>
|
||||
<connections>
|
||||
<outlet property="bgImageView" destination="7cD-Zp-duy" id="Qws-Sx-zgv"/>
|
||||
<outlet property="countLabel" destination="Gu5-Ab-anM" id="thX-Ow-8uq"/>
|
||||
<outlet property="giftCoinBtn" destination="wfH-dA-6iW" id="0Pf-vR-YFG"/>
|
||||
<outlet property="giftImageView" destination="lFd-KA-CIy" id="WHj-IT-1gB"/>
|
||||
<outlet property="nameLabel" destination="C99-P7-2Qa" id="4Pi-Pd-bat"/>
|
||||
<outlet property="userCountLabel" destination="5R5-ei-HVw" id="o6Z-tG-hWI"/>
|
||||
<outlet property="userImageView1" destination="6dg-55-CAQ" id="Vuh-HH-6hU"/>
|
||||
<outlet property="userImageView2" destination="mxk-cv-aBW" id="faK-sf-NvT"/>
|
||||
<outlet property="userImageView3" destination="Rfn-Wi-s2Q" id="gBa-p4-JDT"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="229.00763358778624" y="85.211267605633807"/>
|
||||
</collectionViewCell>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="mine_live_gift_corn" width="10" height="10"/>
|
||||
<image name="user_giftwall_light" width="108" height="149"/>
|
||||
</resources>
|
||||
</document>
|
||||
@@ -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"
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/mine_edit_btn@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_edit_btn.imageset/mine_edit_btn@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 19 KiB |
@@ -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"
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 185 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/mine_header_room@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_header_room.imageset/mine_header_room@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 264 KiB |
22
QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/mine_nobility_bg@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 90 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_nobility_bg.imageset/mine_nobility_bg@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 183 KiB |
@@ -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"
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/mine_redbag@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_redbag.imageset/mine_redbag@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
@@ -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"
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
22
QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/mine_tools_friend@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_friend.imageset/mine_tools_friend@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
22
QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/mine_tools_guild@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_guild.imageset/mine_tools_guild@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 17 KiB |
22
QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/mine_tools_recharge@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_recharge.imageset/mine_tools_recharge@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 13 KiB |
22
QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/mine_tools_room@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_room.imageset/mine_tools_room@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
22
QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/mine_tools_shop@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_tools_shop.imageset/mine_tools_shop@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
@@ -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"
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 6.7 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/mine_usercode_isLiang@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/mine_usercode_isLiang.imageset/mine_usercode_isLiang@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
@@ -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"
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_bag.imageset/service_bag@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_bag.imageset/service_bag@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
22
QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/service_customer_service@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_customer_service.imageset/service_customer_service@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
@@ -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"
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_dress.imageset/service_dress@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_dress.imageset/service_dress@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
@@ -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"
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/service_help.imageset/service_help@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_help.imageset/service_help@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
@@ -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"
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/service_invite.imageset/service_invite@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_invite.imageset/service_invite@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
@@ -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"
|
||||
}
|
||||
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/service_level.imageset/service_level@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_level.imageset/service_level@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
22
QXLive/Other/Assets.xcassets/mine/service_report.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/service_report.imageset/service_report@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 894 B |
BIN
QXLive/Other/Assets.xcassets/mine/service_report.imageset/service_report@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
22
QXLive/Other/Assets.xcassets/mine/service_setting.imageset/Contents.json
vendored
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
BIN
QXLive/Other/Assets.xcassets/mine/service_setting.imageset/service_setting@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_setting.imageset/service_setting@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
@@ -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"
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_task.imageset/service_task@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
QXLive/Other/Assets.xcassets/mine/service_task.imageset/service_task@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |