feat: 调整 UI 效果,调整剩余日期计算

This commit is contained in:
eggmanQQQ
2024-08-22 10:32:42 +08:00
parent 0f54b562e2
commit 3e6fec0601
3 changed files with 39 additions and 16 deletions

View File

@@ -186,7 +186,6 @@
@interface VIPCardCyclePagerCell : UICollectionViewCell
@property (nonatomic, assign) NSInteger cellIndex;
@property (nonatomic, copy) NSString *placeHolderPath;
@property (nonatomic, copy) NSString *svgaPath;
@property (nonatomic, strong) UIImageView *levelBgImageView;
@@ -235,21 +234,23 @@
_svgaImageView.clearsAfterStop = NO;
_svgaImageView.loops = INT_MAX;
_svgaImageView.contentMode = UIViewContentModeScaleAspectFill;
NSInteger offset = 80;
[self.contentView addSubview:_svgaImageView];
[_svgaImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.placeHolderImageView);
make.centerX.mas_equalTo(_placeHolderImageView);
make.bottom.mas_equalTo(_placeHolderImageView).offset(offset/2);
make.width.height.mas_equalTo(kGetScaleWidth(130 + offset));
}];
}
- (void)setCellIndex:(NSInteger)cellIndex {
_cellIndex = cellIndex;
NSString *imageName = [NSString stringWithFormat:@"vip_center_level_%ld", (long)(cellIndex+1)];
[self.levelBgImageView setImage:kImage(imageName)];
}
- (void)setPlaceHolderPath:(NSString *)placeHolderPath {
_placeHolderPath = placeHolderPath;
_placeHolderImageView.imageUrl = placeHolderPath;
UIImage *image = kImage(imageName);
if (image == nil) {
image = kImage(@"vip_center_level_6");
}
[self.levelBgImageView setImage:image];
}
- (void)setSvgaPath:(NSString *)svgaPath {
@@ -272,7 +273,7 @@
@end
@interface VIPCenterViewController () <TYCyclePagerViewDataSource, TYCyclePagerViewDelegate, XPNobleCenterPayViewDelegate, XPNobleCenterProtocol>
@interface VIPCenterViewController () <TYCyclePagerViewDataSource, TYCyclePagerViewDelegate, XPNobleCenterPayViewDelegate, XPNobleCenterProtocol, NIMSystemNotificationManagerDelegate>
@property (nonatomic, strong) UIButton *backButton;
@property (nonatomic, strong) UILabel *titleLabel;
@@ -285,6 +286,7 @@
@property (nonatomic, strong) UIView *scrollContentView;
@property (nonatomic, strong) UserInfoModel *userInfo;
@property (nonatomic, strong) UserVipInfoVo *userVIPInfo;
@property (nonatomic, strong) NobleInfo *currentVIPInfo;
@property (nonatomic, strong) NobleCenterModel *vipModel;
@property (nonatomic, strong) WalletInfoModel *walletInfo;
@@ -679,7 +681,7 @@
}
self.rechargeModel = nil;
// NSInteger currentLevel = self.vipModel.currentLevel == 0 ? 1 : self.vipModel.currentLevel;
NSInteger currentLevel = self.userVIPInfo.vipLevel;
NSInteger currentPage = self.vipCardCyclePager.curIndex;
for (RechargeListModel *model in self.rechargeList) {
if (model.prodDesc.integerValue == currentPage + 1) {
@@ -692,20 +694,27 @@
return;
}
// TODO:
NSInteger userLevel = self.userInfo.userVipInfoVO.vipLevel;
self.purchasePriceLabel.text = [NSString stringWithFormat:@"%.0f/30Days", self.rechargeModel.money.floatValue * 1000];
if (self.purchaseExpiresLabel.text.length == 0) {
if (currentLevel >= self.vipCardCyclePager.curIndex+1) {
self.purchaseExpiresLabel.text = [NSString stringWithFormat:@"%@ Expires", [self calNextVIPExpiredSeconds:self.vipModel.remainSeconds]];
} else {
self.purchaseExpiresLabel.text = [NSString stringWithFormat:@"%@ Expires", [self calNext30Day]];
}
}
- (NSString *)calNextVIPExpiredSeconds:(NSInteger)seconds {
NSDate *date = [NSDate date];
NSDate *nextDate = [date dateByAddingSeconds:seconds];
return [NSDate timestampSwitchTime:nextDate.timeIntervalSince1970
formatter:@"yyyy/MM/dd 00:00"];
}
- (NSString *)calNext30Day {
NSDate *date = [NSDate date];
NSDate *next30Date = [date dateByAddingDays:30];
return [NSDate timestampSwitchTime:next30Date.timeIntervalSince1970
formatter:@"yyyy/MM/dd hh:mm"];
formatter:@"yyyy/MM/dd 00:00"];
}
#pragma mark - Load Data from API
@@ -723,8 +732,13 @@
if (code == 200) {
UserInfoModel *infoModel = [UserInfoModel modelWithDictionary:data.data];
self.userInfo = infoModel;
self.userVIPInfo = infoModel.userVipInfoVO;
[self loadVIPCenterInfo];
[self updatePurchaseArea];
if (self.userVIPInfo) {
[self.vipCardCyclePager scrollToItemAtIndex:self.userVIPInfo.vipLevel-1 animate:NO];
}
}
} uid:uid];
}
@@ -766,6 +780,7 @@
[self configVIPCards];
[self configIdentificationCards];
[self configExclusivePrivilegesArea];
[self updatePurchaseArea];
}
}];
}
@@ -816,6 +831,7 @@
layout.layoutType = TYCyclePagerTransformLayoutLinear;
layout.itemSize = CGSizeMake(kGetScaleWidth(320), kGetScaleWidth(136));
layout.itemSpacing = 15;
layout.sectionInset = UIEdgeInsetsMake(0, 40, 0, 40);
return layout;
}
@@ -826,7 +842,6 @@
if (self.vipModel) {
NobleInfo *info = [self.vipModel.vipInfos xpSafeObjectAtIndex:index];
if (info) {
cell.placeHolderPath = info.vipIcon;
cell.svgaPath = info.vipLogo;
}
}

View File

@@ -15,6 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
- (NSInteger)daysBetween:(NSDate *)aDate;
- (NSDate *)dateByAddingDays:(NSInteger)days;
- (NSDate *)dateByAddingSeconds:(NSInteger)seconds;
- (NSString *)stringForFormat:(NSString *)format;

View File

@@ -31,6 +31,13 @@ NSString * const kDateFormatYYMMDDTHHmmss = @"yyyy-MM-dd'T'HH:mm:ss";
return [calendar dateByAddingComponents:components toDate:self options:0];
}
- (NSDate *)dateByAddingSeconds:(NSInteger)seconds {
NSCalendar *calendar = [NSCalendar sharedCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setSecond:seconds];
return [calendar dateByAddingComponents:components toDate:self options:0];
}
- (NSInteger)daysBetween:(NSDate *)aDate {
NSUInteger unitFlags = NSCalendarUnitDay;
NSDate *from = [NSDate at_dateFromString:[self stringForYearMonthDayDashed]];