Commit 7d616f94 cgx

初步完成我的积分页面

1 个父辈 aa92811b
......@@ -5,19 +5,15 @@
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
<BreakpointContent
uuid = "AB571E92-11B2-4994-AF38-757E0BC9241C"
uuid = "A06C484A-DD91-49DE-ABD9-AB5990FC464C"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "DreamSleep/Class/ProfileModule/ScoreTaskAI/TaskTimerTool.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "52"
endingLineNumber = "52"
landmarkName = "-dealloc"
landmarkType = "7">
breakpointStackSelectionBehavior = "1"
scope = "1"
stopOnStyle = "0">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
......
......@@ -44,10 +44,12 @@
}
}];
[ScoreTaskRequestModel queryWeekTotalRankWithQueryType:0 completion:^(ScoreTaskRequestModel * _Nonnull requestModel) {
if (requestModel.resCode == DSResCodeSuccess) {
[self.myPointView updateRankView:requestModel];
}
[self getRankDataRequestWithQueryType:0];
}
- (void)getRankDataRequestWithQueryType:(NSInteger)queryType {
[ScoreTaskRequestModel queryWeekMonthRankWithQueryType:queryType completion:^(ScoreTaskRequestModel * _Nonnull requestModel) {
[self.myPointView updateRankView:requestModel curIndex:queryType];
}];
}
......@@ -75,6 +77,10 @@
self.scoreDetailBtn.layer.borderColor = self.scoreDetailBtn.titleLabel.textColor.CGColor;
}
- (void)didSelectedRanItem:(NSInteger)index {
[self getRankDataRequestWithQueryType:(int)index];
}
#pragma mark - lazy
- (UIButton *)scoreDetailBtn {
if (!_scoreDetailBtn) {
......
......@@ -15,6 +15,10 @@ NS_ASSUME_NONNULL_BEGIN
/// 监听scrollview是否滚动到临界值
/// @param isMax isMax
- (void)didScrollToMaxOffsetY:(BOOL)isMax;
/// 选择了周或者月排行项
/// @param index index
- (void)didSelectedRanItem:(NSInteger)index;
@end
/// 自定义我的积分主视图
......@@ -30,7 +34,7 @@ NS_ASSUME_NONNULL_BEGIN
/// 更新积分排名视图
/// @param scoreRankRequestModel scoreRankRequestModel
- (void)updateRankView:(ScoreTaskRequestModel *)scoreRankRequestModel;
- (void)updateRankView:(ScoreTaskRequestModel *)scoreRankRequestModel curIndex:(NSInteger)curIndex;
@end
NS_ASSUME_NONNULL_END
......@@ -21,6 +21,9 @@
@property (nonatomic, assign) BOOL vccanScroll;
@property (nonatomic, assign) CGFloat bgHeight;
@property (nonatomic, strong) NSArray *rankListArr;
@property (nonatomic, assign) NSInteger curIndex;
@property (nonatomic, strong) UIView *assitView;
@property (nonatomic, strong) ExceptionDefaultView *exceptionView;
@end
@implementation MyPointView
......@@ -30,12 +33,9 @@
self.dk_backgroundColorPicker = DKColorPickerWithKey(VCViewBG);
_delegate = delegate;
self.vccanScroll = YES;
self.bgHeight = kTopHeight(0) + 48 - 9 + 150*(kScreenWidth - 30)/345;
self.rankListArr = @[@1, @2, @3, @4, @5, @6, @7, @8, @9];
self.curIndex = 0;
[self addSubview:self.headBgIV];
[self.headBgIV mas_makeConstraints:^(MASConstraintMaker *make) {
......@@ -50,8 +50,34 @@
[self.scoreLevelView updateData:scoreModel];
}
- (void)updateRankView:(ScoreTaskRequestModel *)scoreRankRequestModel {
[self.rankHeadView updateMyRankView:scoreRankRequestModel.userRankModel];
- (void)updateRankView:(ScoreTaskRequestModel *)scoreRankRequestModel curIndex:(NSInteger)curIndex {
self.curIndex = curIndex;
if (scoreRankRequestModel.userRankModel) {
[self.rankHeadView updateMyRankView:scoreRankRequestModel.userRankModel];
}
if (scoreRankRequestModel.resCode == DSResCodeSuccess) {
if (scoreRankRequestModel.otherRankList && scoreRankRequestModel.otherRankList.count) {
self.rankListArr = scoreRankRequestModel.otherRankList;
[self.rankTableView reloadData];
} else {
// 显示异常视图(空列表)
[self dealErrorWithType:ExceptionTypeNoData errInfo:@""];
}
} else {
// 显示网络错误视图
[self dealErrorWithType:ExceptionTypeNet errInfo:scoreRankRequestModel.errMessage];
}
}
- (void)dealErrorWithType:(ExceptionType)type errInfo:(NSString *)errInfo {
self.rankListArr = @[];
[self.rankTableView reloadData];
self.assitView.hidden = NO;
[self.exceptionView updateExceptionViewWithType:type];
if (type == ExceptionTypeNet) {
[self.exceptionView showServerErrInfo:errInfo];
}
}
#pragma mark - UITableViewDelegate && UITableViewDataSource
......@@ -65,7 +91,8 @@
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
RankViewCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([RankViewCell class]) forIndexPath:indexPath];
cell.textLabel.text = [NSString stringWithFormat:@"%ld", indexPath.row + 1];
RankModel *model = self.rankListArr[indexPath.row];
[cell showRankData:model indexPath:indexPath];
return cell;
}
......@@ -121,17 +148,42 @@
_rankTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_rankTableView.tableHeaderView = self.rankHeadView;
[_rankTableView registerClass:[RankViewCell class] forCellReuseIdentifier:NSStringFromClass([RankViewCell class])];
UIView *assitView = [[UIView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.rankHeadView.frame), _rankTableView.width, _rankTableView.height - self.rankHeadView.height)];
assitView.hidden = YES;
[_rankTableView addSubview:assitView];
self.assitView = assitView;
}
return _rankTableView;
}
- (RankHeadView *)rankHeadView {
if (!_rankHeadView) {
WS(weakSelf);
_rankHeadView = [[RankHeadView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 325)];
_rankHeadView.rankItemBlock = ^(NSInteger index) {
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didSelectedRanItem:)]) {
[weakSelf.delegate didSelectedRanItem:index];
}
};
}
return _rankHeadView;
}
- (ExceptionDefaultView *)exceptionView {
if (!_exceptionView) {
WS(weakSelf);
_exceptionView = [[ExceptionDefaultView alloc] initWithType:ExceptionTypeNet block:^{
weakSelf.assitView.hidden = YES;
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didSelectedRanItem:)]) {
[weakSelf.delegate didSelectedRanItem:weakSelf.curIndex];
}
} superView:self.assitView];
_exceptionView.hidden = NO;
}
return _exceptionView;
}
- (NSArray *)rankListArr {
if (!_rankListArr) {
_rankListArr = [NSArray array];
......
......@@ -10,11 +10,16 @@
NS_ASSUME_NONNULL_BEGIN
/// 点击排行项回调block
typedef void (^RankItemBlock)(NSInteger index);
/// 自定义当前用户等级头部视图
@interface RankHeadView : UIView
@property (nonatomic, copy) RankItemBlock rankItemBlock;
/// 更新我的等级排名数据
/// @param userRankModel myRankModel
/// @param myRankModel myRankModel
- (void)updateMyRankView:(RankModel *)myRankModel;
@end
......
......@@ -27,7 +27,7 @@
[self addSubview:self.rankIV];
UIButton *weekBtn = [self buildBtnWithTitle:@"周排行榜" tag:0];
UIButton *totalBtn = [self buildBtnWithTitle:@"排行榜" tag:1];
UIButton *totalBtn = [self buildBtnWithTitle:@"排行榜" tag:1];
self.btns = @[weekBtn, totalBtn];
[self addSubview:self.markerIV];
[self adjustMarkLayout];
......@@ -68,6 +68,9 @@
[btn addTouchUpInsideHandler:^(NSInteger tag) {
weakSelf.curIndex = tag;
[weakSelf adjustMarkLayout];
if (weakSelf.rankItemBlock) {
weakSelf.rankItemBlock(tag);
}
}];
[btn setTitle:title forState:UIControlStateNormal];
[btn dk_setBackgroundColorPicker:DKColorPickerWithColors(ColorFromHex(0x4670FF), ColorFromHex(0x2341A3), DSWhite)];
......
......@@ -19,6 +19,10 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) NSInteger rank;
/// 用户名
@property (nonatomic, copy) NSString *user_name;
/// 排名图标
@property (nonatomic, copy) NSString *rank_img;
/// 用户头像
@property (nonatomic, copy) NSString *avatar_url;
@end
NS_ASSUME_NONNULL_END
......@@ -6,12 +6,15 @@
//
#import <UIKit/UIKit.h>
#import "RankModel.h"
NS_ASSUME_NONNULL_BEGIN
/// 排名cell
@interface RankViewCell : UITableViewCell
- (void)showRankData:(RankModel *)rankModel indexPath:(NSIndexPath *)indexPath;
@end
NS_ASSUME_NONNULL_END
......@@ -8,7 +8,11 @@
#import "RankViewCell.h"
@interface RankViewCell ()
@property (nonatomic, strong) UIImageView *userRankIV;
@property (nonatomic, strong) UILabel *userRankLab;
@property (nonatomic, strong) UIImageView *userHeadIV;
@property (nonatomic, strong) UILabel *userNameLab;
@property (nonatomic, strong) UILabel *userScoreLab;
@end
@implementation RankViewCell
......@@ -17,8 +21,110 @@
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.dk_backgroundColorPicker = DKColorPickerWithKey(VCViewBG);
[self.contentView addSubview:self.userRankIV];
[self.contentView addSubview:self.userRankLab];
[self.contentView addSubview:self.userHeadIV];
[self.contentView addSubview:self.userNameLab];
[self.contentView addSubview:self.userScoreLab];
[self.userRankIV mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.contentView);
make.left.equalTo(self.contentView).offset(35);
make.width.height.equalTo(@28);
}];
[self.userRankLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self.userRankIV);
}];
[self.userHeadIV mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.contentView);
make.left.equalTo(self.userRankIV.mas_right).offset(20);
make.width.height.equalTo(@40);
}];
[self.userNameLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.contentView);
make.left.equalTo(self.userHeadIV.mas_right).offset(14);
}];
[self.userScoreLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.contentView);
make.left.equalTo(self.userNameLab.mas_right).offset(10);
make.right.equalTo(self.contentView).offset(-35);
}];
}
return self;
}
- (void)showRankData:(RankModel *)rankModel indexPath:(NSIndexPath *)indexPath {
if (rankModel.rank_img) {
self.userRankIV.hidden = NO;
[self.userRankIV yy_setImageWithURL:[NSURL URLWithString:rankModel.rank_img] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
} else {
self.userRankIV.hidden = YES;
self.userRankLab.text = [NSString stringWithFormat:@"%ld", indexPath.row + 1];
}
self.userRankLab.hidden = !self.userRankIV.hidden;
[self.userHeadIV yy_setImageWithURL:[NSURL URLWithString:rankModel.avatar_url] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
self.userNameLab.text = rankModel.user_name;
self.userScoreLab.text = [NSString stringWithFormat:@"%ld", rankModel.points];
UIColor *borderColror = DSClearColor;
if (indexPath.row == 0) { // 金
self.userScoreLab.textColor = ColorFromHex(0xFFB84B);
borderColror = self.userScoreLab.textColor;
} else if (indexPath.row == 1) { // 银
self.userScoreLab.textColor = ColorFromHex(0xD5D8E1);
borderColror = self.userScoreLab.textColor;
} else if (indexPath.row == 2) { // 铜
self.userScoreLab.textColor = ColorFromHex(0xFDA069);
borderColror = self.userScoreLab.textColor;
} else {
self.userScoreLab.dk_textColorPicker = DKColorPickerWithColors(SubTitleColor, ColorFromHexA(0xFFFFFF, .5), DSWhite);
}
self.userHeadIV.layer.borderColor = borderColror.CGColor;
self.userHeadIV.layer.borderWidth = 1.0;
}
#pragma mark - lazy
- (UIImageView *)userRankIV {
if (!_userRankIV) {
_userRankIV = [UIImageView new];
_userRankIV.dk_alphaPicker = DKAlphaPickerWithAlphas(1, .5, .5);
}
return _userRankIV;
}
- (UILabel *)userRankLab {
if (!_userRankLab) {
_userRankLab = [UILabel labWithFont:SysFont(14.0)];
_userRankLab.textAlignment = NSTextAlignmentCenter;
_userRankLab.dk_textColorPicker = DKColorPickerWithColors(SubTitleColor, ColorFromHexA(0xFFFFFF, .5), DSWhite);
}
return _userRankLab;
}
- (UIImageView *)userHeadIV {
if (!_userHeadIV) {
_userHeadIV = [UIImageView new];
_userHeadIV.dk_alphaPicker = DKAlphaPickerWithAlphas(1, .5, .5);
[_userHeadIV cornerRadius:20.0];
}
return _userHeadIV;
}
- (UILabel *)userNameLab {
if (!_userNameLab) {
_userNameLab = [UILabel labWithFont:SysFont(14.0)];
_userNameLab.dk_textColorPicker = DKColorPickerWithColors(SubTitleColor, ColorFromHexA(0xFFFFFF, .5), DSWhite);
}
return _userNameLab;
}
- (UILabel *)userScoreLab {
if (!_userScoreLab) {
_userScoreLab = [UILabel labWithFont:SysFont(14.0)];
_userScoreLab.textAlignment = NSTextAlignmentRight;
}
return _userScoreLab;
}
@end
......@@ -26,8 +26,6 @@
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self debugViewShowBorder];
[self addSubview:self.cardIV];
[self addSubview:self.curRankNameLab];
[self addSubview:self.totalPointsLab];
......@@ -36,7 +34,7 @@
[self addSubview:self.curRankLab];
[self addSubview:self.nextRankLab];
[self addSubview:self.beizerView];
CGFloat h = 150*(kScreenWidth - 30)/345;
[self.cardIV mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self).offset(15);
......@@ -72,7 +70,7 @@
self.curRankLab.text = scoreModel.cur_rank;
self.nextRankLab.text = scoreModel.next_rank;
[self.beizerView animateProgress:.8 animate:YES];
[self.curRankNameLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.cardIV).offset(20);
make.top.equalTo(self.cardIV).offset(15);
......@@ -155,8 +153,8 @@
_beizerView.y = 50;
_beizerView.radius = 40;
_beizerView.backgroundColor = DSClearColor;
// [_beizerView debugViewShowBorder];
// _beizerView.layer.anchorPoint = CGPointMake(0.5, 0.5);
// [_beizerView debugViewShowBorder];
// _beizerView.layer.anchorPoint = CGPointMake(0.5, 0.5);
}
return _beizerView;
}
......
......@@ -57,9 +57,9 @@ NS_ASSUME_NONNULL_BEGIN
+ (NSURLSessionDataTask *)queryUserIntegralRankWithCompletion:(void (^)(ScoreTaskRequestModel *requestModel))completion;
/// 我的积分-积分排行榜查询
/// @param queryType 查询类型 0:周排行榜 1: 总积分排行榜 默认 0
/// @param queryType 查询类型 0:周排行榜 ,1: 月排行榜,默认 0
/// @param completion completion
+ (NSURLSessionDataTask *)queryWeekTotalRankWithQueryType:(int)queryType completion:(void (^)(ScoreTaskRequestModel *requestModel))completion;
+ (NSURLSessionDataTask *)queryWeekMonthRankWithQueryType:(NSInteger)queryType completion:(void (^)(ScoreTaskRequestModel *requestModel))completion;
/// 每日任务-查询用户积分明细
/// @param params params
......
......@@ -31,11 +31,11 @@
}];
}
+ (NSURLSessionDataTask *)queryWeekTotalRankWithQueryType:(int)queryType completion:(void (^)(ScoreTaskRequestModel *requestModel))completion {
+ (NSURLSessionDataTask *)queryWeekMonthRankWithQueryType:(NSInteger)queryType completion:(void (^)(ScoreTaskRequestModel *requestModel))completion {
NSString *api = @"query_week_total_rank";
NSString *argStr = [NSString stringWithFormat:@"query{%@(que_type:%d)}", api, queryType];
NSString *argStr = [NSString stringWithFormat:@"query{%@(que_type:%ld)}", api, queryType];
ScoreTaskRequestModel * requestModel = [[ScoreTaskRequestModel alloc] init];
return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(NSDictionary *apiDic) {
return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:NO success:^(NSDictionary *apiDic) {
DSLog(@"积分排行榜查询接口dataDic:%@", apiDic);
requestModel.resCode = DSResCodeSuccess;
NSDictionary *resultDic = apiDic[@"result"];
......
......@@ -7,77 +7,77 @@
<key>AFNetworking.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>5</integer>
<integer>7</integer>
</dict>
<key>DKNightVersion.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>15</integer>
<integer>12</integer>
</dict>
<key>DOUAudioStreamer.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>7</integer>
<integer>8</integer>
</dict>
<key>FreeStreamer.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>11</integer>
<integer>5</integer>
</dict>
<key>IQKeyboardManager.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>8</integer>
<integer>6</integer>
</dict>
<key>MBProgressHUD.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>12</integer>
<integer>16</integer>
</dict>
<key>MJRefresh.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>13</integer>
<integer>10</integer>
</dict>
<key>Masonry.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>9</integer>
<integer>15</integer>
</dict>
<key>Pods-DreamSleep.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>17</integer>
<integer>13</integer>
</dict>
<key>Reachability.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>18</integer>
<integer>9</integer>
</dict>
<key>YYCache.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>19</integer>
<integer>14</integer>
</dict>
<key>YYImage.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>14</integer>
<integer>19</integer>
</dict>
<key>YYModel.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>10</integer>
<integer>4</integer>
</dict>
<key>YYWebImage.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>6</integer>
<integer>18</integer>
</dict>
<key>lottie-ios.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>16</integer>
<integer>17</integer>
</dict>
</dict>
</dict>
......
......@@ -12,7 +12,7 @@
<key>UnityFramework.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
<integer>11</integer>
</dict>
</dict>
</dict>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!