This commit is contained in:
启星
2025-09-30 19:42:20 +08:00
parent 2a44a06630
commit 87fc467652
42 changed files with 629 additions and 150 deletions

View File

@@ -780,12 +780,12 @@
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
INFOPLIST_KEY_UIUserInterfaceStyle = Light; INFOPLIST_KEY_UIUserInterfaceStyle = Light;
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.2; MARKETING_VERSION = 1.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.xscm.midi; PRODUCT_BUNDLE_IDENTIFIER = com.xscm.midi;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -842,12 +842,12 @@
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
INFOPLIST_KEY_UIUserInterfaceStyle = Light; INFOPLIST_KEY_UIUserInterfaceStyle = Light;
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.2; MARKETING_VERSION = 1.0.3;
PRODUCT_BUNDLE_IDENTIFIER = com.xscm.midi; PRODUCT_BUNDLE_IDENTIFIER = com.xscm.midi;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";

View File

@@ -240,21 +240,5 @@
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "E9FF6285-965C-483B-BA74-D7BF681F2ED7"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "QXLive/Network/QXRequest.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "359"
endingLineNumber = "359"
landmarkName = "-requestWithUrl:parameters:type:cachePolicy:success:cache:failure:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints> </Breakpoints>
</Bucket> </Bucket>

View File

@@ -11,6 +11,8 @@
#import <CommonCrypto/CommonHMAC.h> #import <CommonCrypto/CommonHMAC.h>
static NSString * _Nonnull qx_room_topic = @"qx_room_topic"; static NSString * _Nonnull qx_room_topic = @"qx_room_topic";
static NSString * _Nonnull qx_ac_topic = @"qx_xunlehui"; static NSString * _Nonnull qx_ac_topic = @"qx_xunlehui";
static NSString * _Nonnull qx_hour_ranking = @"qx_hour_ranking";
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@protocol MQTTClientModelDelegate <NSObject> @protocol MQTTClientModelDelegate <NSObject>
@optional @optional

View File

@@ -80,6 +80,7 @@
QXLOG(@"eventCode -- 连接成功"); QXLOG(@"eventCode -- 连接成功");
[self subscribeTopic:qx_room_topic]; [self subscribeTopic:qx_room_topic];
[self subscribeTopic:qx_ac_topic]; [self subscribeTopic:qx_ac_topic];
[self subscribeTopic:qx_hour_ranking];
[self reConnectForStateError]; [self reConnectForStateError];
break; break;

View File

@@ -423,6 +423,11 @@ QXRoomUserInfoViewDelegate
[self.acTagView stopTimer]; [self.acTagView stopTimer];
[self.acTagView removeFromSuperview]; [self.acTagView removeFromSuperview];
} }
if (self.roomModel.hour_ranking_open == 1) {
self.hourRankIconView.hidden = NO;
}else{
self.hourRankIconView.hidden = YES;
}
} }
@@ -1927,6 +1932,7 @@ QXRoomUserInfoViewDelegate
_hourRankIconView.startBlock = ^{ _hourRankIconView.startBlock = ^{
[weakSelf.hourRankView showInView:weakSelf.view]; [weakSelf.hourRankView showInView:weakSelf.view];
}; };
_hourRankIconView.hidden = YES;
} }
return _hourRankIconView; return _hourRankIconView;
} }

View File

@@ -90,12 +90,13 @@
self.helpBtn = [[UIButton alloc] init]; self.helpBtn = [[UIButton alloc] init];
[self.helpBtn setImage:[UIImage imageNamed:@"room_hour_rank_help"] forState:(UIControlStateNormal)]; [self.helpBtn setImage:[UIImage imageNamed:@"room_hour_rank_help"] forState:(UIControlStateNormal)];
[self.helpBtn addTarget:self action:@selector(helpAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.helpBtn]; [self.bgView addSubview:self.helpBtn];
[self.helpBtn mas_makeConstraints:^(MASConstraintMaker *make) { [self.helpBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.bgView); make.right.equalTo(self.bgView);
make.top.mas_equalTo(ScaleWidth(40)); make.top.mas_equalTo(ScaleWidth(50));
make.height.mas_equalTo(ScaleWidth(24)); make.height.mas_equalTo(ScaleWidth(40));
make.width.mas_equalTo(ScaleWidth(24)); make.width.mas_equalTo(ScaleWidth(40));
}]; }];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
@@ -130,7 +131,7 @@
-(void)getRankList{ -(void)getRankList{
MJWeakSelf MJWeakSelf
[QXMineNetwork roomHourRankWithPage:self.page successBlock:^(QXRoomHourRankModel * _Nonnull model) { [QXMineNetwork roomHourRankWithPage:self.page successBlock:^(QXRoomHourRankModel * _Nonnull model) {
if (weakSelf.page == 0) { if (weakSelf.page == 1) {
[weakSelf.dataArray removeAllObjects]; [weakSelf.dataArray removeAllObjects];
} }
weakSelf.timeLabel.text = [NSString stringWithFormat:@"榜单时间 %@",model.time_range]; weakSelf.timeLabel.text = [NSString stringWithFormat:@"榜单时间 %@",model.time_range];
@@ -163,6 +164,7 @@
} }
-(void)showInView:(UIView *)view{ -(void)showInView:(UIView *)view{
self.page = 1;
[self getRankList]; [self getRankList];
self.bgView.x = SCREEN_WIDTH; self.bgView.x = SCREEN_WIDTH;
[view addSubview:self]; [view addSubview:self];
@@ -177,6 +179,13 @@
[self removeFromSuperview]; [self removeFromSuperview];
}]; }];
} }
-(void)helpAction{
QXBaseWebViewController *vc = [[QXBaseWebViewController alloc] init];
NSString *urlString = [NSString stringWithFormat:@"%@api/Page/page_show?id=%@",ServerUrl,@"24"];
vc.urlStr = urlString;
[self.viewController.navigationController pushViewController:vc animated:YES];
}
-(NSMutableArray *)dataArray{ -(NSMutableArray *)dataArray{
if (!_dataArray) { if (!_dataArray) {
_dataArray = [NSMutableArray array]; _dataArray = [NSMutableArray array];
@@ -198,6 +207,7 @@
} }
-(void)initSubviews{ -(void)initSubviews{
self.contentView.backgroundColor = RGB16(0x420B93);
self.rankNumberImageView = [[UIImageView alloc] init]; self.rankNumberImageView = [[UIImageView alloc] init];
[self.contentView addSubview:self.rankNumberImageView]; [self.contentView addSubview:self.rankNumberImageView];
[self.rankNumberImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.rankNumberImageView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -240,9 +250,11 @@
[self.contentView addSubview:self.activityBgView]; [self.contentView addSubview:self.activityBgView];
[self.activityBgView mas_makeConstraints:^(MASConstraintMaker *make) { [self.activityBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.right.mas_equalTo(-5); make.right.right.mas_equalTo(-5);
make.top.mas_equalTo(8); make.centerY.equalTo(self.contentView);
make.width.mas_equalTo(44);
make.height.mas_equalTo(48); // make.top.mas_equalTo(8);
make.width.mas_equalTo(63);
make.height.mas_equalTo(67);
}]; }];
self.activityStatusBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"activity_status_ing"]]; self.activityStatusBgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"activity_status_ing"]];
@@ -254,7 +266,7 @@
}]; }];
self.statusLabel = [[UILabel alloc] init]; self.statusLabel = [[UILabel alloc] init];
self.statusLabel.font = [UIFont systemFontOfSize:10]; self.statusLabel.font = [UIFont systemFontOfSize:12];
self.statusLabel.textColor = RGB16(0xffffff); self.statusLabel.textColor = RGB16(0xffffff);
self.statusLabel.textAlignment = NSTextAlignmentCenter; self.statusLabel.textAlignment = NSTextAlignmentCenter;
[self.activityBgView addSubview:self.statusLabel]; [self.activityBgView addSubview:self.statusLabel];
@@ -268,7 +280,7 @@
[self.activityImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.activityImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.activityBgView); make.top.equalTo(self.activityBgView);
make.centerX.equalTo(self.activityBgView); make.centerX.equalTo(self.activityBgView);
make.width.height.mas_equalTo(36); make.width.height.mas_equalTo(55);
}]; }];
self.nameLabel = [[UILabel alloc] init]; self.nameLabel = [[UILabel alloc] init];

View File

@@ -16,6 +16,7 @@
#import "QXAlertView.h" #import "QXAlertView.h"
#import "QXGiftDriftView.h" #import "QXGiftDriftView.h"
#import "QXMeetActivityDriftView.h" #import "QXMeetActivityDriftView.h"
#import "QXDrifRoomHourRankView.h"
@interface QXRoomSettingView()<UIGestureRecognizerDelegate,UITableViewDelegate,UITableViewDataSource,QXRoomSettingViewDelegate> @interface QXRoomSettingView()<UIGestureRecognizerDelegate,UITableViewDelegate,UITableViewDataSource,QXRoomSettingViewDelegate>
@property (nonatomic,strong)UIView *bgView; @property (nonatomic,strong)UIView *bgView;
@@ -673,6 +674,7 @@
[[NSUserDefaults standardUserDefaults] setBool:model.isSelected forKey:kIsCloseDrifPop]; [[NSUserDefaults standardUserDefaults] setBool:model.isSelected forKey:kIsCloseDrifPop];
[[QXGiftDriftView shareView] drifPopIsClose:model.isSelected]; [[QXGiftDriftView shareView] drifPopIsClose:model.isSelected];
[[QXMeetActivityDriftView shareView] drifPopIsClose:model.isSelected]; [[QXMeetActivityDriftView shareView] drifPopIsClose:model.isSelected];
[[QXDrifRoomHourRankView shareView] drifPopIsClose:model.isSelected];
return; return;
} }
if (model.type == QXRoomSettingTypeRoomOrderMic) { if (model.type == QXRoomSettingTypeRoomOrderMic) {

View File

@@ -94,7 +94,7 @@
_tableView.backgroundColor = [UIColor clearColor]; _tableView.backgroundColor = [UIColor clearColor];
_tableView.tableFooterView = [UIView new]; _tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone; _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.rowHeight = 66; _tableView.rowHeight = 180;
MJWeakSelf MJWeakSelf
_tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ _tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
weakSelf.page = 1; weakSelf.page = 1;

View File

@@ -155,13 +155,14 @@
[QXMineNetwork walletPayTypeWithUserId:QXGlobal.shareGlobal.loginModel.user_id successBlock:^(QXPayTypeStatusModel * _Nonnull model) { [QXMineNetwork walletPayTypeWithUserId:QXGlobal.shareGlobal.loginModel.user_id successBlock:^(QXPayTypeStatusModel * _Nonnull model) {
[weakSelf.dataArray removeAllObjects]; [weakSelf.dataArray removeAllObjects];
weakSelf.selectedPayTypeModel = nil;
if (model.wx.is_with_draw_open.intValue == 1 && model.wx.is_bind.intValue == 1) { if (model.wx.is_with_draw_open.intValue == 1 && model.wx.is_bind.intValue == 1) {
[weakSelf.dataArray addObject:model.wx]; [weakSelf.dataArray addObject:model.wx];
} }
if (model.ali.is_pay_open.intValue == 1 && model.ali.is_bind.intValue == 1) { if (model.ali.is_with_draw_open.intValue == 1 && model.ali.is_bind.intValue == 1) {
[weakSelf.dataArray addObject:model.ali]; [weakSelf.dataArray addObject:model.ali];
} }
if (model.bank.is_pay_open.intValue == 1 && model.bank.is_bind.intValue == 1) { if (model.bank.is_with_draw_open.intValue == 1 && model.bank.is_bind.intValue == 1) {
[weakSelf.dataArray addObject:model.bank]; [weakSelf.dataArray addObject:model.bank];
} }
[weakSelf.tableView reloadData]; [weakSelf.tableView reloadData];
@@ -181,6 +182,10 @@
showToast(@"请输入提现金额"); showToast(@"请输入提现金额");
return; return;
} }
if (self.selectedPayTypeModel == nil) {
showToast(@"请选择提现方式");
return;
}
MJWeakSelf MJWeakSelf
QXReVerificationPopView *popView = [[QXReVerificationPopView alloc] initWithFrame:CGRectMake(0, 0, ScaleWidth(300), ScaleWidth(200))]; QXReVerificationPopView *popView = [[QXReVerificationPopView alloc] initWithFrame:CGRectMake(0, 0, ScaleWidth(300), ScaleWidth(200))];
popView.commitBlock = ^(NSString * _Nonnull code) { popView.commitBlock = ^(NSString * _Nonnull code) {

View File

@@ -30,12 +30,20 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)NSString *name; @property (nonatomic,strong)NSString *name;
/// 变动类型 /// 变动类型
@property (nonatomic,strong)NSString *money; @property (nonatomic,strong)NSString *money;
/// 1待处理2已通过3已拒绝 4打款中[云账户]5打款失败[云账户]6已打款[云账户] /// 状态:1待处理2已通过3已拒绝 4打款中[云账户]5打款失败[云账户]6已打款[云账户]
@property (nonatomic,strong)NSString *status; @property (nonatomic,strong)NSString *status;
/// 变动金额 /// 状态说明
@property (nonatomic,strong)NSString *status_str; @property (nonatomic,strong)NSString *status_str;
/// 时间 /// 提现时间
@property (nonatomic,strong)NSString *createtime; @property (nonatomic,strong)NSString *createtime;
/// 手续费/服务费
@property (nonatomic,strong)NSString *withdraw_fee;
/// 税率
@property (nonatomic,strong)NSString *personal_tax_rate;
/// 税款(个人所得税)
@property (nonatomic,strong)NSString *received_tax_amount;
/// 实际到账金额
@property (nonatomic,strong)NSString *surplus_money;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -34,6 +34,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,strong)NSArray< QXRoomPitModel*> *song_pit_list; @property (nonatomic,strong)NSArray< QXRoomPitModel*> *song_pit_list;
/// 活动 /// 活动
@property (nonatomic,strong)QXRoomActivityModel *gift_cycle; @property (nonatomic,strong)QXRoomActivityModel *gift_cycle;
@property (nonatomic,assign)NSInteger hour_ranking_open;
@end @end

View File

@@ -10,10 +10,14 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface QXWithDrawRecordCell : UITableViewCell @interface QXWithDrawRecordCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *reasonLabel; @property (weak, nonatomic) IBOutlet UILabel *realTitleLabel;
@property (weak, nonatomic) IBOutlet UILabel *timeLabel; @property (weak, nonatomic) IBOutlet UILabel *timeLabel;
@property (weak, nonatomic) IBOutlet UILabel *priceLabel; @property (weak, nonatomic) IBOutlet UILabel *withDrawPriceLabel;
@property (weak, nonatomic) IBOutlet UILabel *realPriceLabel;
@property (weak, nonatomic) IBOutlet UILabel *feeLabel;
@property (weak, nonatomic) IBOutlet UILabel *statusLabel; @property (weak, nonatomic) IBOutlet UILabel *statusLabel;
@property (weak, nonatomic) IBOutlet UILabel *personalFeeLabel;
@property (weak, nonatomic) IBOutlet UIImageView *leftImageView;
@property (nonatomic,strong)QXWithDrawRecordModel *model; @property (nonatomic,strong)QXWithDrawRecordModel *model;
+(instancetype)cellWithTableView:(UITableView *)tableView; +(instancetype)cellWithTableView:(UITableView *)tableView;

View File

@@ -14,15 +14,69 @@
if (!cell) { if (!cell) {
cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject; cell = [[NSBundle mainBundle] loadNibNamed:cellId owner:nil options:nil].lastObject;
cell.backgroundColor = [UIColor clearColor]; cell.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
} }
return cell; return cell;
} }
-(void)setModel:(QXWithDrawRecordModel *)model{ -(void)setModel:(QXWithDrawRecordModel *)model{
_model = model; _model = model;
self.reasonLabel.text = model.name; self.withDrawPriceLabel.text = [NSString stringWithFormat:@"%.2f",model.money.doubleValue];
self.feeLabel.text = [NSString stringWithFormat:@"%.2f",model.withdraw_fee.doubleValue];
self.personalFeeLabel.text = [NSString stringWithFormat:@"%.2f",model.received_tax_amount.doubleValue];
self.realPriceLabel.text = [NSString stringWithFormat:@"%.2f",model.surplus_money.doubleValue];;
self.timeLabel.text = model.createtime; self.timeLabel.text = model.createtime;
self.priceLabel.text = [NSString stringWithFormat:@"%.2f",model.money.doubleValue];
self.statusLabel.text = model.status_str; self.statusLabel.text = model.status_str;
if (model.status.intValue == 1) {
// self.statusLabel.text = @"待处理";
self.realTitleLabel.text = @"提现金额(个税扣除前)";
self.statusLabel.textColor = RGB16(0x0DFFB9);
self.realPriceLabel.textColor = RGB16(0x333333);
self.leftImageView.image =[UIImage imageNamed:@"wallet_record_green"];
return;
}
if (model.status.intValue == 2) {
// self.statusLabel.text = @"已通过";
self.realTitleLabel.text = @"提现金额(个税扣除前)";
self.statusLabel.textColor = RGB16(0x999999);
self.realPriceLabel.textColor = RGB16(0x333333);
self.leftImageView.image =[UIImage imageNamed:@"wallet_record_gray"];
return;
}
if (model.status.intValue == 3) {
self.realTitleLabel.text = @"退款金额";
// self.statusLabel.text = @"已拒绝";
self.statusLabel.textColor = RGB16(0xFF8ACC);
self.realPriceLabel.textColor = RGB16(0x333333);
self.leftImageView.image =[UIImage imageNamed:@"wallet_record_pink"];
return;
}
if (model.status.intValue == 4) {
// self.statusLabel.text = @"打款中";
self.realTitleLabel.text = @"提现金额(个税扣除前)";
self.realPriceLabel.textColor = RGB16(0x333333);
self.statusLabel.textColor = RGB16(0x68A5FF);
self.leftImageView.image =[UIImage imageNamed:@"wallet_record_blue"];
return;
}
if (model.status.intValue == 5) {
// self.statusLabel.text = @"打款失败";
self.realTitleLabel.text = @"退款金额";
self.realPriceLabel.textColor = RGB16(0x333333);
self.statusLabel.textColor = RGB16(0xFF8ACC);
self.leftImageView.image =[UIImage imageNamed:@"wallet_record_pink"];
return;
}
if (model.status.intValue == 6) {
// self.statusLabel.text = @"已到账";
self.realTitleLabel.text = @"实际到账";
self.realPriceLabel.textColor = RGB16(0x2ADB88);
self.statusLabel.textColor = RGB16(0x999999);
self.leftImageView.image =[UIImage imageNamed:@"wallet_record_gray"];
return;
}
// self.reasonLabel.text = model.name;
// self.priceLabel.text = [NSString stringWithFormat:@"%.2f",model.money.doubleValue];
// self.statusLabel.text = model.status_str;
} }
- (void)awakeFromNib { - (void)awakeFromNib {

View File

@@ -10,67 +10,158 @@
<objects> <objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="85" id="kPI-qL-1ri" customClass="QXWithDrawRecordCell"> <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="225" id="VCl-a3-yig" customClass="QXWithDrawRecordCell">
<rect key="frame" x="0.0" y="0.0" width="393" height="85"/> <rect key="frame" x="0.0" y="0.0" width="470" height="180"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="kPI-qL-1ri" id="s9T-6G-yHf"> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VCl-a3-yig" id="L8k-Ed-Tx5">
<rect key="frame" x="0.0" y="0.0" width="393" height="85"/> <rect key="frame" x="0.0" y="0.0" width="470" height="180"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="每日签到" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qq3-Ya-VEA"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZIP-q5-CqF">
<rect key="frame" x="16" y="12" width="261" height="21"/> <rect key="frame" x="15" y="6" width="440" height="168"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="9ER-fD-hch">
<rect key="frame" x="0.0" y="0.0" width="7" height="168"/>
<constraints>
<constraint firstAttribute="width" constant="7" id="COj-v7-Xdv"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="提现金额" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Tp-TZ-2Gx">
<rect key="frame" x="19.999999999999996" y="13" width="55.666666666666657" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="EWH-1D-OSy"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="手续费" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ejl-Rb-2j2">
<rect key="frame" x="20" y="47" width="42" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="qAI-Mp-oAi"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="个人所得税" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OAN-0p-E7C">
<rect key="frame" x="20" y="80" width="69.666666666666671" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="142.12" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GgA-Bs-Y0v">
<rect key="frame" x="380.33333333333331" y="13.999999999999998" width="46.666666666666686" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="1" green="0.1529411765" blue="0.1529411765" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="3.21" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LRA-hz-cUz">
<rect key="frame" x="395.66666666666669" y="47" width="31.333333333333314" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="计算中..." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3RE-93-cJm">
<rect key="frame" x="373" y="80" width="54" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="预计到账" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qro-0b-Zcx">
<rect key="frame" x="20" y="116" width="56" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="Ima-8w-tWJ"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2024.12.14 11:21:45" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Shi-5c-nIQ">
<rect key="frame" x="19.999999999999993" y="143" width="111.33333333333331" height="18"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="IAn-Ty-XfO"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="待处理" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GfI-4K-hZ6">
<rect key="frame" x="391" y="145" width="36" height="14.333333333333343"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.050980392159999999" green="1" blue="0.72549019609999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="s1F-9I-VCr">
<rect key="frame" x="20" y="103" width="407" height="1"/>
<color key="backgroundColor" red="0.94509803920000002" green="0.94901960780000005" blue="0.95294117649999999" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="Zmw-SI-mpm"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="138.81" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FgD-eh-sgY">
<rect key="frame" x="375" y="117" width="52" height="19.333333333333343"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="21" id="d9x-Tj-Ikf"/> <constraint firstItem="ejl-Rb-2j2" firstAttribute="top" secondItem="2Tp-TZ-2Gx" secondAttribute="bottom" constant="13" id="1Ol-zz-YXW"/>
<constraint firstItem="s1F-9I-VCr" firstAttribute="leading" secondItem="9ER-fD-hch" secondAttribute="trailing" constant="13" id="3JZ-KX-JdQ"/>
<constraint firstItem="LRA-hz-cUz" firstAttribute="centerY" secondItem="ejl-Rb-2j2" secondAttribute="centerY" id="3ax-vR-aLv"/>
<constraint firstItem="3RE-93-cJm" firstAttribute="centerY" secondItem="OAN-0p-E7C" secondAttribute="centerY" id="5fi-Jh-w8f"/>
<constraint firstItem="OAN-0p-E7C" firstAttribute="leading" secondItem="2Tp-TZ-2Gx" secondAttribute="leading" id="5yt-MS-7s5"/>
<constraint firstItem="Shi-5c-nIQ" firstAttribute="leading" secondItem="2Tp-TZ-2Gx" secondAttribute="leading" id="6PA-xd-Ydq"/>
<constraint firstItem="GfI-4K-hZ6" firstAttribute="centerY" secondItem="Shi-5c-nIQ" secondAttribute="centerY" id="92P-CK-CtR"/>
<constraint firstItem="FgD-eh-sgY" firstAttribute="centerY" secondItem="Qro-0b-Zcx" secondAttribute="centerY" id="BHb-da-z3j"/>
<constraint firstItem="2Tp-TZ-2Gx" firstAttribute="leading" secondItem="9ER-fD-hch" secondAttribute="trailing" constant="13" id="Cbc-Mk-rpH"/>
<constraint firstItem="ejl-Rb-2j2" firstAttribute="leading" secondItem="2Tp-TZ-2Gx" secondAttribute="leading" id="Ces-M1-qW7"/>
<constraint firstItem="LRA-hz-cUz" firstAttribute="trailing" secondItem="GgA-Bs-Y0v" secondAttribute="trailing" id="Df8-si-u5n"/>
<constraint firstItem="9ER-fD-hch" firstAttribute="top" secondItem="ZIP-q5-CqF" secondAttribute="top" id="E3v-e8-qCy"/>
<constraint firstItem="3RE-93-cJm" firstAttribute="trailing" secondItem="LRA-hz-cUz" secondAttribute="trailing" id="Emo-R6-1QY"/>
<constraint firstItem="Qro-0b-Zcx" firstAttribute="leading" secondItem="2Tp-TZ-2Gx" secondAttribute="leading" id="LFD-rq-hny"/>
<constraint firstItem="2Tp-TZ-2Gx" firstAttribute="top" secondItem="ZIP-q5-CqF" secondAttribute="top" constant="13" id="Nuf-D2-IwX"/>
<constraint firstItem="9ER-fD-hch" firstAttribute="leading" secondItem="ZIP-q5-CqF" secondAttribute="leading" id="OtZ-Q9-KCk"/>
<constraint firstItem="OAN-0p-E7C" firstAttribute="top" secondItem="ejl-Rb-2j2" secondAttribute="bottom" constant="12" id="Wyc-7P-N7e"/>
<constraint firstAttribute="trailing" secondItem="s1F-9I-VCr" secondAttribute="trailing" constant="13" id="byI-mO-UA1"/>
<constraint firstItem="GgA-Bs-Y0v" firstAttribute="centerY" secondItem="2Tp-TZ-2Gx" secondAttribute="centerY" id="duZ-Ur-oZT"/>
<constraint firstAttribute="trailing" secondItem="GgA-Bs-Y0v" secondAttribute="trailing" constant="13" id="gqb-CB-JDY"/>
<constraint firstAttribute="bottom" secondItem="9ER-fD-hch" secondAttribute="bottom" id="tJH-dN-spu"/>
<constraint firstItem="Shi-5c-nIQ" firstAttribute="top" secondItem="Qro-0b-Zcx" secondAttribute="bottom" constant="6" id="vQx-6W-GGQ"/>
<constraint firstItem="Qro-0b-Zcx" firstAttribute="top" secondItem="s1F-9I-VCr" secondAttribute="bottom" constant="12" id="xq9-io-dtT"/>
<constraint firstItem="GfI-4K-hZ6" firstAttribute="trailing" secondItem="GgA-Bs-Y0v" secondAttribute="trailing" id="xwj-Nk-qmB"/>
<constraint firstItem="s1F-9I-VCr" firstAttribute="top" secondItem="OAN-0p-E7C" secondAttribute="bottom" constant="6" id="yM5-N7-vjj"/>
<constraint firstItem="FgD-eh-sgY" firstAttribute="trailing" secondItem="GgA-Bs-Y0v" secondAttribute="trailing" id="zdQ-3O-cgq"/>
</constraints> </constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/> <userDefinedRuntimeAttributes>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.84705882349999995" colorSpace="calibratedRGB"/> <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
<nil key="highlightedColor"/> <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
</label> <integer key="value" value="6"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2024.12.14 11:22:55" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FLY-c0-OJ2"> </userDefinedRuntimeAttribute>
<rect key="frame" x="16" y="56" width="121" height="15"/> </userDefinedRuntimeAttributes>
<fontDescription key="fontDescription" type="system" pointSize="13"/> </view>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="+99999" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sxs-13-Gyh">
<rect key="frame" x="297" y="12.666666666666664" width="80" height="20"/>
<constraints>
<constraint firstAttribute="width" constant="80" id="N1f-68-eYJ"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="1" green="0.15294116739999999" blue="0.15294116739999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已通过" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lsg-kQ-zEd">
<rect key="frame" x="338" y="53" width="39" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="aMc-86-ajV"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.84705882349999995" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews> </subviews>
<constraints> <constraints>
<constraint firstItem="Sxs-13-Gyh" firstAttribute="leading" secondItem="Qq3-Ya-VEA" secondAttribute="trailing" constant="20" id="2dI-1d-yuF"/> <constraint firstItem="ZIP-q5-CqF" firstAttribute="leading" secondItem="L8k-Ed-Tx5" secondAttribute="leading" constant="15" id="IjW-s3-jqk"/>
<constraint firstItem="Lsg-kQ-zEd" firstAttribute="centerY" secondItem="FLY-c0-OJ2" secondAttribute="centerY" id="McZ-JB-PsG"/> <constraint firstAttribute="bottom" secondItem="ZIP-q5-CqF" secondAttribute="bottom" constant="6" id="Tea-Q6-ko2"/>
<constraint firstItem="Qq3-Ya-VEA" firstAttribute="leading" secondItem="s9T-6G-yHf" secondAttribute="leading" constant="16" id="ZFS-5U-e4a"/> <constraint firstItem="ZIP-q5-CqF" firstAttribute="top" secondItem="L8k-Ed-Tx5" secondAttribute="top" constant="6" id="YUY-pY-uoO"/>
<constraint firstItem="FLY-c0-OJ2" firstAttribute="leading" secondItem="Qq3-Ya-VEA" secondAttribute="leading" id="ZOu-oY-tHe"/> <constraint firstAttribute="trailing" secondItem="ZIP-q5-CqF" secondAttribute="trailing" constant="15" id="w85-jo-ahZ"/>
<constraint firstItem="Sxs-13-Gyh" firstAttribute="centerY" secondItem="Qq3-Ya-VEA" secondAttribute="centerY" id="caK-uz-2hM"/>
<constraint firstItem="Qq3-Ya-VEA" firstAttribute="top" secondItem="s9T-6G-yHf" secondAttribute="top" constant="12" id="hqc-IX-QbO"/>
<constraint firstAttribute="trailing" secondItem="Lsg-kQ-zEd" secondAttribute="trailing" constant="16" id="kIM-LF-NOI"/>
<constraint firstAttribute="trailing" secondItem="Sxs-13-Gyh" secondAttribute="trailing" constant="16" id="oXX-2c-aJq"/>
<constraint firstAttribute="bottom" secondItem="FLY-c0-OJ2" secondAttribute="bottom" constant="14" id="rDE-Cu-M0l"/>
</constraints> </constraints>
</tableViewCellContentView> </tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="Izm-u8-2uc"/> <viewLayoutGuide key="safeArea" id="4Co-ig-yar"/>
<connections> <connections>
<outlet property="priceLabel" destination="Sxs-13-Gyh" id="NdW-oN-sqm"/> <outlet property="feeLabel" destination="LRA-hz-cUz" id="WUU-4U-QxC"/>
<outlet property="reasonLabel" destination="Qq3-Ya-VEA" id="yaG-aO-KcX"/> <outlet property="leftImageView" destination="9ER-fD-hch" id="VyA-xD-use"/>
<outlet property="statusLabel" destination="Lsg-kQ-zEd" id="buo-xV-o0N"/> <outlet property="personalFeeLabel" destination="3RE-93-cJm" id="uvx-WQ-7Vl"/>
<outlet property="timeLabel" destination="FLY-c0-OJ2" id="RFZ-hc-laN"/> <outlet property="realPriceLabel" destination="FgD-eh-sgY" id="Dvs-if-T2Z"/>
<outlet property="realTitleLabel" destination="Qro-0b-Zcx" id="SeG-dj-krj"/>
<outlet property="statusLabel" destination="GfI-4K-hZ6" id="gsv-N3-st3"/>
<outlet property="timeLabel" destination="Shi-5c-nIQ" id="AI5-ne-1aG"/>
<outlet property="withDrawPriceLabel" destination="GgA-Bs-Y0v" id="R0e-XF-6H8"/>
</connections> </connections>
<point key="canvasLocation" x="194.6564885496183" y="13.028169014084508"/> <point key="canvasLocation" x="253.43511450381678" y="62.323943661971832"/>
</tableViewCell> </tableViewCell>
</objects> </objects>
</document> </document>

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -5,12 +5,11 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "User, People@2x.png", "filename" : "room_hour_rank_drif_first@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "User, People@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

View File

@@ -5,12 +5,11 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "User, People@2x(1).png", "filename" : "room_hour_rank_drif_second@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "User, People@3x(1).png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@@ -5,12 +5,11 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "花瓣素材_图标系列3D人物客服_193718966 1@2x.png", "filename" : "room_hour_rank_drif_third@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "花瓣素材_图标系列3D人物客服_193718966 1@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

View File

@@ -33,6 +33,7 @@
#import "QXChirldModeViewController.h" #import "QXChirldModeViewController.h"
#import "QXAppVersionView.h" #import "QXAppVersionView.h"
#import "QXLoginNetwork.h" #import "QXLoginNetwork.h"
#import "QXDrifRoomHourRankView.h"
@interface QXTabbarController ()<UITabBarControllerDelegate,QXTabBarDelegate,UINavigationControllerDelegate,MQTTClientModelDelegate,V2TIMConversationListener> @interface QXTabbarController ()<UITabBarControllerDelegate,QXTabBarDelegate,UINavigationControllerDelegate,MQTTClientModelDelegate,V2TIMConversationListener>
@property(nonatomic,strong) QXTabBar *customTabBar; @property(nonatomic,strong) QXTabBar *customTabBar;
@@ -313,6 +314,9 @@
}else if([topic isEqualToString:qx_ac_topic]){ }else if([topic isEqualToString:qx_ac_topic]){
QXMeetActivityDriftModel *model = [QXMeetActivityDriftModel yy_modelWithJSON:message[@"msg"]]; QXMeetActivityDriftModel *model = [QXMeetActivityDriftModel yy_modelWithJSON:message[@"msg"]];
[[QXMeetActivityDriftView shareView] addActivityModel:model]; [[QXMeetActivityDriftView shareView] addActivityModel:model];
}else if ([topic isEqualToString:qx_hour_ranking]){
NSArray *arr = [NSArray yy_modelArrayWithClass:[QXRoomHourDriftModel class] json:message[@"msg"]];
[[QXDrifRoomHourRankView shareView] addActivityModelList:arr];
} }
} }

View File

@@ -10,7 +10,9 @@
@interface QXAppVersionView()<UITextFieldDelegate> @interface QXAppVersionView()<UITextFieldDelegate>
@property (nonatomic,strong)UIView *bgView; @property (nonatomic,strong)UIView *bgView;
@property (nonatomic,strong)UILabel *titleLabel; @property (nonatomic,strong)UIImageView *topImageView;
@property (nonatomic,strong)UIView *bottomView;
@property (nonatomic,strong)UIScrollView *scrollView;
@property (nonatomic,strong)UILabel *messageLabel; @property (nonatomic,strong)UILabel *messageLabel;
@property (nonatomic,strong)UIButton *cancelBtn; @property (nonatomic,strong)UIButton *cancelBtn;
@property (nonatomic,strong)UIButton *commitBtn; @property (nonatomic,strong)UIButton *commitBtn;
@@ -29,88 +31,64 @@
} }
-(void)createViews{ -(void)createViews{
self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.5]; self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.5];
self.bgView = [[UIView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-ScaleWidth(275))/2.0, -self.height, ScaleWidth(275), ScaleWidth(400))]; self.bgView = [[UIView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-ScaleWidth(275))/2.0, -self.height, ScaleWidth(275), ScaleWidth(362))];
self.bgView.backgroundColor = [UIColor whiteColor]; // self.bgView.backgroundColor = [UIColor whiteColor];
[self.bgView addRoundedCornersWithRadius:16]; [self.bgView addRoundedCornersWithRadius:16];
[self addSubview:self.bgView]; [self addSubview:self.bgView];
self.topImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"app_update_top_bg"]];
self.topImageView.frame = CGRectMake(0, 0, self.bgView.width, ScaleWidth(170));
[self.bgView addSubview:self.topImageView];
self.bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, self.topImageView.bottom-ScaleWidth(12), self.bgView.width, self.bgView.height-self.topImageView.height+ScaleWidth(12))];
self.bottomView.backgroundColor = RGB16(0xffffff);
[self.bottomView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerBottomLeft|UIRectCornerBottomRight)];
[self.bgView addSubview:self.bottomView];
self.titleLabel = [[UILabel alloc] init]; self.commitBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.bgView.width-ScaleWidth(110)-20, self.bottomView.height-42-12, ScaleWidth(110), 42)];
self.titleLabel.font = [UIFont boldSystemFontOfSize:16];
self.titleLabel.text = QXText(@"发现新版本");
self.titleLabel.textColor = RGB16(0x333333);
[self.bgView addSubview:self.titleLabel];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.bgView);
make.top.equalTo(self.bgView).offset(16);
make.height.mas_equalTo(24);
}];
self.commitBtn = [[UIButton alloc] init];
[self.commitBtn addRoundedCornersWithRadius:21]; [self.commitBtn addRoundedCornersWithRadius:21];
self.commitBtn.backgroundColor = QXConfig.themeColor; self.commitBtn.backgroundColor = QXConfig.themeColor;
[self.commitBtn setTitle:QXText(@"确认") forState:(UIControlStateNormal)]; [self.commitBtn setTitle:QXText(@"立即升级") forState:(UIControlStateNormal)];
[self.commitBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)]; [self.commitBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
self.commitBtn.titleLabel.font = [UIFont systemFontOfSize:14]; self.commitBtn.titleLabel.font = [UIFont systemFontOfSize:14];
[self.commitBtn addTarget:self action:@selector(commitAction) forControlEvents:(UIControlEventTouchUpInside)]; [self.commitBtn addTarget:self action:@selector(commitAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.commitBtn]; [self.bottomView addSubview:self.commitBtn];
[self.commitBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.bgView).offset(-12);
make.height.mas_equalTo(42);
make.width.mas_equalTo(ScaleWidth(110));
make.right.mas_equalTo(-20);
}];
self.cancelBtn = [[UIButton alloc] initWithFrame:CGRectMake(20, self.bottomView.height-42-12, ScaleWidth(110), 42)];
self.cancelBtn = [[UIButton alloc] init];
[self.cancelBtn addRoundedCornersWithRadius:21]; [self.cancelBtn addRoundedCornersWithRadius:21];
self.cancelBtn.backgroundColor = RGB16(0xF3F3F3); self.cancelBtn.backgroundColor = RGB16(0xF3F3F3);
[self.cancelBtn setTitle:QXText(@"取消") forState:(UIControlStateNormal)]; [self.cancelBtn setTitle:QXText(@"取消") forState:(UIControlStateNormal)];
[self.cancelBtn setTitleColor:RGB16(0x999999) forState:(UIControlStateNormal)]; [self.cancelBtn setTitleColor:RGB16(0x999999) forState:(UIControlStateNormal)];
self.cancelBtn.titleLabel.font = [UIFont systemFontOfSize:14]; self.cancelBtn.titleLabel.font = [UIFont systemFontOfSize:14];
[self.cancelBtn addTarget:self action:@selector(cancelAction) forControlEvents:(UIControlEventTouchUpInside)]; [self.cancelBtn addTarget:self action:@selector(cancelAction) forControlEvents:(UIControlEventTouchUpInside)];
[self.bgView addSubview:self.cancelBtn]; [self.bottomView addSubview:self.cancelBtn];
[self.cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.bgView).offset(-12);
make.height.mas_equalTo(42);
make.width.mas_equalTo(ScaleWidth(110));
make.left.mas_equalTo(20);
}];
self.messageLabel = [[UILabel alloc] init];
self.messageLabel.font = [UIFont boldSystemFontOfSize:16]; self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(13, 0, self.bgView.width-26, self.commitBtn.top-13)];
[self.bottomView addSubview:self.scrollView];
self.messageLabel = [[UILabel alloc] initWithFrame:self.scrollView.bounds];
self.messageLabel.font = [UIFont boldSystemFontOfSize:14];
self.messageLabel.textColor = RGB16(0x000000); self.messageLabel.textColor = RGB16(0x000000);
self.messageLabel.textAlignment = NSTextAlignmentCenter; self.messageLabel.textAlignment = NSTextAlignmentCenter;
self.messageLabel.numberOfLines = 0; self.messageLabel.numberOfLines = 0;
[self.bgView addSubview:self.messageLabel]; [self.scrollView addSubview:self.messageLabel];
[self.messageLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titleLabel.mas_bottom).offset(10);
make.left.equalTo(self.bgView).offset(16);
make.right.equalTo(self.bgView).offset(-16);
make.bottom.equalTo(self.commitBtn.mas_top).offset(-10);
}];
} }
-(void)setModel:(QXAppVersionModel *)model{ -(void)setModel:(QXAppVersionModel *)model{
_model = model; _model = model;
self.messageLabel.text = model.content; self.messageLabel.text = model.content;
// self.messageLabel.text = @"动环监控撒谎大健康撒谎科技打撒好看到货时间阿克汉登记卡撒大花洒科技活动极客飒户djsakljdk电视剧啊快回家读书卡多撒u一还有第四u啊个ID撒个hi打撒低功耗设计啊开工大吉萨嘎合计打撒好多个健身卡刚回到家撒合计扩大活动时间卡号大健康撒谎登记卡到货时间啊客户端健身卡核打静待花开撒会尽快的撒回到家凯撒会尽快的撒回到家凯撒会尽快的撒大花洒客户端手机卡击凯撒籍卡打撒";
[self.messageLabel sizeToFit];
self.scrollView.contentSize = CGSizeMake(self.bgView.width-26, self.messageLabel.height);
if (model.is_force.intValue == 1) { if (model.is_force.intValue == 1) {
self.cancelBtn.hidden = YES; self.cancelBtn.hidden = YES;
[self.commitBtn mas_remakeConstraints:^(MASConstraintMaker *make) { self.commitBtn.frame = CGRectMake((self.bgView.width-ScaleWidth(110))/2, self.bottomView.height-42-12, ScaleWidth(110), 42);
make.bottom.equalTo(self.bgView).offset(-12);
make.height.mas_equalTo(42);
make.width.mas_equalTo(ScaleWidth(110));
make.centerX.equalTo(self.bgView);
}];
}else{ }else{
self.cancelBtn.hidden = NO; self.cancelBtn.hidden = NO;
[self.commitBtn mas_remakeConstraints:^(MASConstraintMaker *make) { self.commitBtn.frame = CGRectMake(self.bgView.width-ScaleWidth(110)-20, self.bottomView.height-42-12, ScaleWidth(110), 42);
make.bottom.equalTo(self.bgView).offset(-12);
make.height.mas_equalTo(42);
make.width.mas_equalTo(ScaleWidth(110));
make.right.mas_equalTo(-20);
}];
} }
} }
-(void)cancelAction{ -(void)cancelAction{
@@ -125,7 +103,7 @@
-(void)showInView:(UIView *)view{ -(void)showInView:(UIView *)view{
[view addSubview:self]; [view addSubview:self];
[UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ [UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bgView.y = (SCREEN_HEIGHT-ScaleWidth(300))/2.0; self.bgView.y = (SCREEN_HEIGHT-ScaleWidth(362))/2.0;
} completion:^(BOOL finished) { } completion:^(BOOL finished) {
}]; }];

View File

@@ -0,0 +1,38 @@
//
// QXDrifRoomHourRankView.h
// QXLive
//
// Created by 启星 on 2025/9/29.
//
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger) {
/// 第一名
QXDrifRoomHourRankTypeFirst = 1,
/// 第二名
QXDrifRoomHourRankTypeSecond = 2,
/// 第三名
QXDrifRoomHourRankTypeThird = 3,
}QXDrifRoomHourRankType;
NS_ASSUME_NONNULL_BEGIN
@class QXRoomHourDriftModel;
@interface QXDrifRoomHourRankView : UIView
@property (nonatomic,strong)UIImageView *bgImageView;
@property (nonatomic,strong)UILabel *titleLabel;
@property (nonatomic,strong)NSMutableArray *dataArray;
@property (nonatomic,strong)QXRoomHourDriftModel *model;
-(void)addActivityModel:(QXRoomHourDriftModel*)model;
-(void)addActivityModelList:(NSArray<QXRoomHourDriftModel*>*)list;
-(void)drifPopIsClose:(BOOL)isClose;
+(instancetype)shareView;
@end
@interface QXRoomHourDriftModel : NSObject
@property (nonatomic,strong)NSString *room_id;
@property (nonatomic,strong)NSString *room_name;
@property (nonatomic,strong)NSString *text;
@property (nonatomic,assign)NSInteger rank_number;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,174 @@
//
// QXDrifRoomHourRankView.m
// QXLive
//
// Created by on 2025/8/29.
//
#import "QXDrifRoomHourRankView.h"
@interface QXDrifRoomHourRankView()
@property (nonatomic,assign)BOOL isPlaying;
@property (nonatomic,assign)BOOL isClose;
@end
@implementation QXDrifRoomHourRankView
- (instancetype)init
{
self = [super init];
if (self) {
self.frame = CGRectMake(SCREEN_WIDTH, ScaleWidth(200), SCREEN_WIDTH, ScaleWidth(90));
BOOL isClose = [[NSUserDefaults standardUserDefaults] boolForKey:kIsCloseDrifPop];
self.isClose = isClose;
[self initSubviews];
}
return self;
}
+(instancetype)shareView{
static QXDrifRoomHourRankView *manager = nil;
static dispatch_once_t predicate;
dispatch_once(&predicate, ^{
manager = [[QXDrifRoomHourRankView alloc] init];
});
return manager;
}
-(void)initSubviews{
self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ac_meet_start_pop_bg"]];
self.bgImageView.contentMode = UIViewContentModeScaleToFill;
[self addSubview:self.bgImageView];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(SCREEN_WIDTH);
make.height.mas_equalTo(ScaleWidth(90));
make.centerX.equalTo(self);
make.top.equalTo(self);
}];
self.titleLabel = [[UILabel alloc] init];
self.titleLabel.font = [UIFont systemFontOfSize:12];
self.titleLabel.textColor = RGB16(0xFFFFFF);
[self addSubview:self.titleLabel];;
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.bgImageView).offset(ScaleWidth(53));
make.centerY.equalTo(self.bgImageView);
}];
self.userInteractionEnabled = YES;
MJWeakSelf
[self addTapBlock:^(id _Nonnull obj) {
if ([weakSelf.model.room_id isExist]) {
[[QXGlobal shareGlobal] joinRoomWithRoomId:weakSelf.model.room_id isRejoin:NO navagationController:weakSelf.viewController.navigationController];
}
}];
}
-(void)addActivityModel:(QXRoomHourDriftModel *)model{
if (self.isClose) {
return;
}
[self.dataArray addObject:model];
[self giftAction];
}
-(void)addActivityModelList:(NSArray<QXRoomHourDriftModel *> *)list{
if (self.isClose) {
return;
}
[self.dataArray addObjectsFromArray:list];
[self giftAction];
}
-(void)giftAction{
if (self.isPlaying) {
return;
}
MJWeakSelf
[QXDrifRoomHourRankView shareView].isPlaying = YES;
[QXDrifRoomHourRankView shareView].model = [QXDrifRoomHourRankView shareView].dataArray.firstObject;
[KEYWINDOW addSubview:[QXDrifRoomHourRankView shareView]];
[UIView animateWithDuration:1.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
[QXDrifRoomHourRankView shareView].x = 0;
} completion:^(BOOL finished) {
NSInteger dalayTime = 5;
if (weakSelf.model.rank_number == 1) {
dalayTime = 5;
}else if (weakSelf.model.rank_number == 2){
dalayTime = 4;
}else if (weakSelf.model.rank_number == 2){
dalayTime = 3;
}
[weakSelf performSelector:@selector(dissmissAnimate) afterDelay:dalayTime];
}];
}
-(void)dissmissAnimate{
[UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
[QXDrifRoomHourRankView shareView].x = -SCREEN_WIDTH;
} completion:^(BOOL finished) {
[QXDrifRoomHourRankView shareView].x = SCREEN_WIDTH;
[[QXDrifRoomHourRankView shareView] removeFromSuperview];
[[QXDrifRoomHourRankView shareView].dataArray removeFirstObject];
[QXDrifRoomHourRankView shareView].isPlaying = NO;
if ([QXDrifRoomHourRankView shareView].dataArray.count>0) {
[[QXDrifRoomHourRankView shareView] giftAction];
}
}];
}
-(void)setModel:(QXRoomHourDriftModel *)model{
_model = model;
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:model.text];
switch (model.rank_number) {
case QXDrifRoomHourRankTypeFirst:{
self.bgImageView.image = [UIImage imageNamed:@"room_hour_rank_drif_first"];
if ([model.room_name isExist]) {
[attr yy_setColor:RGB16(0xFFFA63) range:[model.text rangeOfString:model.room_name]];
}
}
break;
case QXDrifRoomHourRankTypeSecond:{
self.bgImageView.image = [UIImage imageNamed:@"room_hour_rank_drif_second"];
if ([model.room_name isExist]) {
[attr yy_setColor:RGB16(0xFEFE20) range:[model.text rangeOfString:model.room_name]];
}
}
break;
case QXDrifRoomHourRankTypeThird:{
self.bgImageView.image = [UIImage imageNamed:@"room_hour_rank_drif_third"];
if ([model.room_name isExist]) {
[attr yy_setColor:RGB16(0x1FFFE5) range:[model.text rangeOfString:model.room_name]];
}
}
break;
default:
break;
}
self.titleLabel.attributedText = attr;
}
-(void)drifPopIsClose:(BOOL)isClose{
_isClose = isClose;
self.hidden = self.isClose;
[[NSUserDefaults standardUserDefaults] setBool:isClose forKey:kIsCloseDrifPop];
[[NSUserDefaults standardUserDefaults] synchronize];
if (isClose) {
[QXDrifRoomHourRankView shareView].x = SCREEN_WIDTH;
[[QXDrifRoomHourRankView shareView] removeFromSuperview];
[[QXDrifRoomHourRankView shareView].dataArray removeAllObjects];
[QXDrifRoomHourRankView shareView].isPlaying = NO;
}
}
-(NSMutableArray *)dataArray{
if (!_dataArray) {
_dataArray = [NSMutableArray array];
}
return _dataArray;
}
@end
@implementation QXRoomHourDriftModel
@end