个人中心-新用户充值入口
This commit is contained in:
@@ -271,6 +271,7 @@
|
||||
9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA3E7C27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m */; };
|
||||
9BE01AC528913B2500B50299 /* XPNewUserRechargeSuccessView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AC428913B2500B50299 /* XPNewUserRechargeSuccessView.m */; };
|
||||
9BE01AC828913D4C00B50299 /* XPNewUserRechargeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AC728913D4C00B50299 /* XPNewUserRechargeViewController.m */; };
|
||||
9BE01ACE28925F7D00B50299 /* XPMineNewUserRechargeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01ACD28925F7D00B50299 /* XPMineNewUserRechargeView.m */; };
|
||||
9BE29A6B27D1BFF700446AB5 /* anchor_room_speak.svga in Resources */ = {isa = PBXBuildFile; fileRef = 9BE29A6927D1BFF700446AB5 /* anchor_room_speak.svga */; };
|
||||
9BE29A6D27D210A500446AB5 /* anchor_room_bg.svga in Resources */ = {isa = PBXBuildFile; fileRef = 9BE29A6C27D210A500446AB5 /* anchor_room_bg.svga */; };
|
||||
9BE2FA90288010D300EF3D83 /* AnchorRoomSrollTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE2FA8F288010D300EF3D83 /* AnchorRoomSrollTipView.m */; };
|
||||
@@ -1417,6 +1418,8 @@
|
||||
9BE01AC428913B2500B50299 /* XPNewUserRechargeSuccessView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewUserRechargeSuccessView.m; sourceTree = "<group>"; };
|
||||
9BE01AC628913D4C00B50299 /* XPNewUserRechargeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNewUserRechargeViewController.h; sourceTree = "<group>"; };
|
||||
9BE01AC728913D4C00B50299 /* XPNewUserRechargeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNewUserRechargeViewController.m; sourceTree = "<group>"; };
|
||||
9BE01ACC28925F7D00B50299 /* XPMineNewUserRechargeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineNewUserRechargeView.h; sourceTree = "<group>"; };
|
||||
9BE01ACD28925F7D00B50299 /* XPMineNewUserRechargeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineNewUserRechargeView.m; sourceTree = "<group>"; };
|
||||
9BE29A6927D1BFF700446AB5 /* anchor_room_speak.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = anchor_room_speak.svga; sourceTree = "<group>"; };
|
||||
9BE29A6C27D210A500446AB5 /* anchor_room_bg.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = anchor_room_bg.svga; sourceTree = "<group>"; };
|
||||
9BE2FA8E288010D300EF3D83 /* AnchorRoomSrollTipView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorRoomSrollTipView.h; sourceTree = "<group>"; };
|
||||
@@ -6883,6 +6886,8 @@
|
||||
E824544D26F5BC1A00BE8163 /* XPMineModifPayPwdView.m */,
|
||||
E824545726F5E65900BE8163 /* XPMineVerifIdentityView.h */,
|
||||
E824545826F5E65900BE8163 /* XPMineVerifIdentityView.m */,
|
||||
9BE01ACC28925F7D00B50299 /* XPMineNewUserRechargeView.h */,
|
||||
9BE01ACD28925F7D00B50299 /* XPMineNewUserRechargeView.m */,
|
||||
);
|
||||
path = SubViews;
|
||||
sourceTree = "<group>";
|
||||
@@ -7497,6 +7502,7 @@
|
||||
E8A88D3027E85EEA00CA8837 /* RoomPKInfoModel.m in Sources */,
|
||||
E8A86E0527BA38DB001C21F9 /* NSString+RW.m in Sources */,
|
||||
E800162C2803FE4900D6D17A /* GuildIncomeRecordModel.m in Sources */,
|
||||
9BE01ACE28925F7D00B50299 /* XPMineNewUserRechargeView.m in Sources */,
|
||||
E83ABF03280EC90C00322EE4 /* ContentApplicationShareModel.m in Sources */,
|
||||
E84B0E3F2727EDF6008818C6 /* XPRoomMessageTableViewCell.m in Sources */,
|
||||
E8E5E18B27C332EE00F457D8 /* XPHomeViewController.m in Sources */,
|
||||
|
22
xplan-ios/Assets.xcassets/NewUserRecharge/NewUserRecharge_entrance_bg.imageset/Contents.json
vendored
Normal file
22
xplan-ios/Assets.xcassets/NewUserRecharge/NewUserRecharge_entrance_bg.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "NewUserRecharge_entrance_bg@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "NewUserRecharge_entrance_bg@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 7.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// XPMineNewUserRechargeView.h
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by GreenLand on 2022/7/28.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface XPMineNewUserRechargeView : UIView
|
||||
|
||||
@property (nonatomic, assign) long endTime;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
181
xplan-ios/Main/Mine/View/SubViews/XPMineNewUserRechargeView.m
Normal file
181
xplan-ios/Main/Mine/View/SubViews/XPMineNewUserRechargeView.m
Normal file
@@ -0,0 +1,181 @@
|
||||
//
|
||||
// XPMineNewUserRechargeView.m
|
||||
// xplan-ios
|
||||
//
|
||||
// Created by GreenLand on 2022/7/28.
|
||||
//
|
||||
|
||||
#import "XPMineNewUserRechargeView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
///Tool
|
||||
#import "XPMacro.h"
|
||||
#import "ThemeColor.h"
|
||||
#import "Timestamp.h"
|
||||
///View
|
||||
|
||||
@interface XPMineNewUserRechargeView ()
|
||||
///底部的底图
|
||||
@property (nonatomic,strong) UIImageView *backImageView;
|
||||
///昵称
|
||||
@property (nonatomic,strong) UILabel *nickLabel;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPMineNewUserRechargeView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self initEvents];
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
#pragma mark - Public Method
|
||||
//- (void)configRoomMiniView:(RoomInfoModel *)roomInfo userInfo:(UserInfoModel *)userInfo micQueue:(NSMutableDictionary *)micQueue {
|
||||
// self.hidden = NO;
|
||||
// self.currentRoomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid];
|
||||
// self.currentRoomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId];
|
||||
// self.roomInfo = roomInfo;
|
||||
// self.userInfo = userInfo;
|
||||
// self.micQueue = micQueue;
|
||||
// [self startAvatarAnimation];
|
||||
// [self.noteView startAnimation];
|
||||
//}
|
||||
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initSubViews {
|
||||
// self.frame = CGRectMake(KScreenWidth - 140 * 1.2, KScreenHeight - kSafeAreaBottomHeight - 150, 140 * 1.2, 34 * 1.2);
|
||||
[self addSubview:self.backImageView];
|
||||
[self.backImageView addSubview:self.nickLabel];
|
||||
}
|
||||
|
||||
- (void)initSubViewConstraints {
|
||||
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.mas_equalTo(0);
|
||||
make.bottom.mas_equalTo(-2);
|
||||
make.height.mas_equalTo(14);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)initEvents {
|
||||
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(roomMiniTag:)];
|
||||
pan.delaysTouchesBegan = YES;
|
||||
[self addGestureRecognizer:pan];
|
||||
|
||||
UITapGestureRecognizer *enterRoomTag = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(enterRomRecognizer:)];
|
||||
[self addGestureRecognizer:enterRoomTag];
|
||||
}
|
||||
|
||||
#pragma mark - events
|
||||
- (void)enterRomRecognizer:(UITapGestureRecognizer *)tap {
|
||||
// if (self.currentRoomUid > 0 && self.controller) {
|
||||
// [XPRoomViewController openMiniRoom:self.currentRoomUid viewController:self.controller];
|
||||
// }
|
||||
}
|
||||
|
||||
- (void)roomMiniTag:(UIPanGestureRecognizer*)p {
|
||||
UIWindow *appWindow = [UIApplication sharedApplication].delegate.window;
|
||||
CGPoint panPoint = [p locationInView:appWindow];
|
||||
if (p.state == UIGestureRecognizerStateBegan) {
|
||||
self.alpha = 1;
|
||||
} else if(p.state == UIGestureRecognizerStateChanged) {
|
||||
self.center = CGPointMake(panPoint.x, panPoint.y);
|
||||
} else if(p.state == UIGestureRecognizerStateEnded
|
||||
|| p.state == UIGestureRecognizerStateCancelled) {
|
||||
self.alpha = 1;
|
||||
CGFloat touchWidth = self.frame.size.width;
|
||||
CGFloat touchHeight = self.frame.size.height;
|
||||
CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width;
|
||||
CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height;
|
||||
// fabs 是取绝对值的意思
|
||||
CGFloat left = fabs(panPoint.x);
|
||||
CGFloat right = fabs(screenWidth - left);
|
||||
CGFloat top = fabs(panPoint.y);
|
||||
CGFloat bottom = fabs(screenHeight - top);
|
||||
CGFloat minSpace = 0;
|
||||
minSpace = MIN(MIN(MIN(top, left), bottom), right);
|
||||
CGPoint newCenter;
|
||||
CGFloat targetY = 0;
|
||||
//校正Y
|
||||
if (panPoint.y < 15 + touchHeight / 2.0) {
|
||||
targetY = 15 + touchHeight / 2.0;
|
||||
}else if (panPoint.y > (screenHeight - touchHeight / 2.0 - 15)) {
|
||||
targetY = screenHeight - touchHeight / 2.0 - 15;
|
||||
}else{
|
||||
targetY = panPoint.y;
|
||||
}
|
||||
|
||||
if (minSpace == left) {
|
||||
newCenter = CGPointMake(15+touchWidth/2.0, targetY);
|
||||
}else if (minSpace == right) {
|
||||
newCenter = CGPointMake(screenWidth - touchWidth/2.0 - 15, targetY);
|
||||
}else if (minSpace == top) {
|
||||
newCenter = CGPointMake(panPoint.x, touchWidth / 3);
|
||||
}else {
|
||||
newCenter = CGPointMake(panPoint.x, screenHeight - touchWidth / 3);
|
||||
}
|
||||
[UIView animateWithDuration:0.25 animations:^{
|
||||
if (newCenter.y + self.frame.size.height / 2 > KScreenHeight - kSafeAreaBottomHeight - 44) {
|
||||
self.center = CGPointMake(newCenter.x, KScreenHeight - self.frame.size.height / 2 - kSafeAreaBottomHeight - 44);
|
||||
}else {
|
||||
self.center = newCenter;
|
||||
}
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (void)setEndTime:(long)endTime {
|
||||
_endTime = endTime;
|
||||
[Timestamp getInternetDateWithSuccess:^(NSTimeInterval timeInterval) {
|
||||
timeInterval = timeInterval * 1000;
|
||||
long aTime = (endTime - timeInterval) / 1000;
|
||||
[self countTimeWithTime:aTime];
|
||||
} failure:^(NSError * _Nonnull error) {
|
||||
NSDate *datenow = [NSDate date];//现在时间
|
||||
long time2 = (long)([datenow timeIntervalSince1970]*1000);
|
||||
long aTime = (endTime - time2) / 1000;
|
||||
[self countTimeWithTime:aTime];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)countTimeWithTime:(long)time {
|
||||
NSInteger minute = time / 60;
|
||||
NSInteger second = (time % 60);
|
||||
NSInteger hour = time/3600;
|
||||
NSInteger day = time / 24 * 3600;
|
||||
NSString *timeStr;
|
||||
if (hour > 0) {
|
||||
minute = minute % 60;
|
||||
timeStr = [NSString stringWithFormat:@"%02zd:%02zd:%02zd", hour, minute, second];
|
||||
} else {
|
||||
timeStr = [NSString stringWithFormat:@"%02zd:%02zd", minute, second];
|
||||
}
|
||||
self.nickLabel.text = timeStr;
|
||||
}
|
||||
|
||||
- (UIImageView *)backImageView {
|
||||
if (!_backImageView) {
|
||||
_backImageView = [[UIImageView alloc] init];
|
||||
_backImageView.image = [UIImage imageNamed:@"NewUserRecharge_entrance_bg"];
|
||||
}
|
||||
return _backImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)nickLabel {
|
||||
if (!_nickLabel) {
|
||||
_nickLabel = [[UILabel alloc] init];
|
||||
_nickLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
|
||||
_nickLabel.textColor = [UIColor whiteColor];
|
||||
}
|
||||
return _nickLabel;
|
||||
}
|
||||
|
||||
@end
|
@@ -39,6 +39,7 @@
|
||||
#import "XPLittleGameRoomOpenView.h"
|
||||
#import "XPMineGameTableViewCell.h"
|
||||
#import "XPHomeBannerTableViewCell.h"
|
||||
#import "XPMineNewUserRechargeView.h"
|
||||
///VC
|
||||
#import "XPMineSettingViewController.h"
|
||||
#import "XPMineTeenagerViewController.h"
|
||||
@@ -80,6 +81,9 @@
|
||||
@property (nonatomic,strong) ClanDetailInfoModel *clanInfo;
|
||||
///我的公会
|
||||
@property (nonatomic,strong) XPMineItemModel *guildItemModel;
|
||||
///新用户充值优惠入口
|
||||
@property (nonatomic, strong) XPMineNewUserRechargeView *userRechargeView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation XPMineViewController
|
||||
@@ -430,6 +434,20 @@
|
||||
self.headView.userInfo = userInfo;
|
||||
[self.tableView reloadData];
|
||||
[self.presenter getNobleInfo];
|
||||
if (userInfo.showLimitCharge) {//新用户充值优惠
|
||||
if (!self.userRechargeView.superview) {
|
||||
[self.view addSubview:self.userRechargeView];
|
||||
[self.userRechargeView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(0);
|
||||
make.top.mas_equalTo(kNavigationHeight + 80);
|
||||
make.size.mas_equalTo(CGSizeMake(74, 88));
|
||||
}];
|
||||
}
|
||||
self.userRechargeView.endTime = userInfo.limitChargeEndTime;
|
||||
} else {
|
||||
[self.userRechargeView removeFromSuperview];
|
||||
self.userRechargeView = nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)getUserWalletInfo:(WalletInfoModel *)balanceInfo {
|
||||
@@ -599,4 +617,11 @@
|
||||
return _bannerArray;
|
||||
}
|
||||
|
||||
- (XPMineNewUserRechargeView *)userRechargeView {
|
||||
if (!_userRechargeView) {
|
||||
_userRechargeView = [[XPMineNewUserRechargeView alloc] init];
|
||||
}
|
||||
return _userRechargeView;
|
||||
}
|
||||
|
||||
@end
|
||||
|
Reference in New Issue
Block a user