Commit cbc73098 cgx

完成大部分每日任务页面UI

1 个父辈 b6ad8d66
...@@ -179,6 +179,7 @@ ...@@ -179,6 +179,7 @@
D0D3826728124E8A005BB219 /* FeedbackController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D3826628124E8A005BB219 /* FeedbackController.m */; }; D0D3826728124E8A005BB219 /* FeedbackController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D3826628124E8A005BB219 /* FeedbackController.m */; };
D0D4107C2844B8DB00009638 /* DailyTaskController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D4107B2844B8DB00009638 /* DailyTaskController.m */; }; D0D4107C2844B8DB00009638 /* DailyTaskController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D4107B2844B8DB00009638 /* DailyTaskController.m */; };
D0D4107F2844D38400009638 /* RankModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D4107E2844D38400009638 /* RankModel.m */; }; D0D4107F2844D38400009638 /* RankModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D4107E2844D38400009638 /* RankModel.m */; };
D0D5BB0D286D7A8D00D0507E /* TaskGroupModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D5BB0C286D7A8D00D0507E /* TaskGroupModel.m */; };
D0D69ED3282360F100A0D5EB /* LookAllController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D69ED2282360F100A0D5EB /* LookAllController.m */; }; D0D69ED3282360F100A0D5EB /* LookAllController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D69ED2282360F100A0D5EB /* LookAllController.m */; };
D0D69ED628236E0800A0D5EB /* SafeSleepListController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D69ED528236E0800A0D5EB /* SafeSleepListController.m */; }; D0D69ED628236E0800A0D5EB /* SafeSleepListController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D69ED528236E0800A0D5EB /* SafeSleepListController.m */; };
D0D96FDF2848457900461839 /* RelaxTrainRequestModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D96FDE2848457900461839 /* RelaxTrainRequestModel.m */; }; D0D96FDF2848457900461839 /* RelaxTrainRequestModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D96FDE2848457900461839 /* RelaxTrainRequestModel.m */; };
...@@ -577,6 +578,8 @@ ...@@ -577,6 +578,8 @@
D0D4107B2844B8DB00009638 /* DailyTaskController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DailyTaskController.m; sourceTree = "<group>"; }; D0D4107B2844B8DB00009638 /* DailyTaskController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DailyTaskController.m; sourceTree = "<group>"; };
D0D4107D2844D38400009638 /* RankModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RankModel.h; sourceTree = "<group>"; }; D0D4107D2844D38400009638 /* RankModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RankModel.h; sourceTree = "<group>"; };
D0D4107E2844D38400009638 /* RankModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RankModel.m; sourceTree = "<group>"; }; D0D4107E2844D38400009638 /* RankModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RankModel.m; sourceTree = "<group>"; };
D0D5BB0B286D7A8D00D0507E /* TaskGroupModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TaskGroupModel.h; sourceTree = "<group>"; };
D0D5BB0C286D7A8D00D0507E /* TaskGroupModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TaskGroupModel.m; sourceTree = "<group>"; };
D0D69ED1282360F100A0D5EB /* LookAllController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LookAllController.h; sourceTree = "<group>"; }; D0D69ED1282360F100A0D5EB /* LookAllController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LookAllController.h; sourceTree = "<group>"; };
D0D69ED2282360F100A0D5EB /* LookAllController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LookAllController.m; sourceTree = "<group>"; }; D0D69ED2282360F100A0D5EB /* LookAllController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LookAllController.m; sourceTree = "<group>"; };
D0D69ED428236E0800A0D5EB /* SafeSleepListController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SafeSleepListController.h; sourceTree = "<group>"; }; D0D69ED428236E0800A0D5EB /* SafeSleepListController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SafeSleepListController.h; sourceTree = "<group>"; };
...@@ -1096,6 +1099,8 @@ ...@@ -1096,6 +1099,8 @@
D037C499284F4F0D000F3089 /* DailyTaskCell.m */, D037C499284F4F0D000F3089 /* DailyTaskCell.m */,
D07257F1286BF99F0080F458 /* DailyTaskView.h */, D07257F1286BF99F0080F458 /* DailyTaskView.h */,
D07257F2286BF99F0080F458 /* DailyTaskView.m */, D07257F2286BF99F0080F458 /* DailyTaskView.m */,
D0D5BB0B286D7A8D00D0507E /* TaskGroupModel.h */,
D0D5BB0C286D7A8D00D0507E /* TaskGroupModel.m */,
D0D4107A2844B8DB00009638 /* DailyTaskController.h */, D0D4107A2844B8DB00009638 /* DailyTaskController.h */,
D0D4107B2844B8DB00009638 /* DailyTaskController.m */, D0D4107B2844B8DB00009638 /* DailyTaskController.m */,
D0336161285035AB005573CF /* DailyBgView.h */, D0336161285035AB005573CF /* DailyBgView.h */,
...@@ -2066,6 +2071,7 @@ ...@@ -2066,6 +2071,7 @@
D0AEFE822817DD1500230DC6 /* MyFeedListController.m in Sources */, D0AEFE822817DD1500230DC6 /* MyFeedListController.m in Sources */,
D055BEC828252D8200BC11A4 /* AudioCourseCell.m in Sources */, D055BEC828252D8200BC11A4 /* AudioCourseCell.m in Sources */,
D0AEFE7C2817D13400230DC6 /* UITableViewCell+CardRadius.m in Sources */, D0AEFE7C2817D13400230DC6 /* UITableViewCell+CardRadius.m in Sources */,
D0D5BB0D286D7A8D00D0507E /* TaskGroupModel.m in Sources */,
D09BF331280E570D00E5F06C /* UserModel.m in Sources */, D09BF331280E570D00E5F06C /* UserModel.m in Sources */,
D0C50B4F27FD832300DC68F0 /* LeadView.m in Sources */, D0C50B4F27FD832300DC68F0 /* LeadView.m in Sources */,
D091E674283F5B4200D3279E /* ScoreDetailModel.m in Sources */, D091E674283F5B4200D3279E /* ScoreDetailModel.m in Sources */,
......
...@@ -6,17 +6,25 @@ ...@@ -6,17 +6,25 @@
// //
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "ScoreTaskRequestModel.h" #import "DailyTaskModel.h"
#import "NewTaskModel.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@protocol DailyTaskCellDelegate <NSObject>
- (void)finishWithModel:(id)model type:(int)type;
@end
/// 每日任务、新手任务cell /// 每日任务、新手任务cell
@interface DailyTaskCell : UITableViewCell @interface DailyTaskCell : UITableViewCell
/// 分组类型(1:每日任务,2:新手任务)
@property (nonatomic, assign) int type;
/// 每日任务cell数据model
@property (nonatomic, strong) DailyTaskModel *dailyTaskModel;
/// 新手任务cell数据model
@property (nonatomic, strong) NewTaskModel *nTaskModel;
- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier indexPath:(NSIndexPath *)indexPath; @property (nonatomic, weak) id<DailyTaskCellDelegate> delegate;
- (void)updateSignView:(ScoreTaskRequestModel *)requestModel;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END
...@@ -6,38 +6,167 @@ ...@@ -6,38 +6,167 @@
// //
#import "DailyTaskCell.h" #import "DailyTaskCell.h"
#import "SignTaskView.h"
@interface DailyTaskCell () @interface DailyTaskCell ()
@property (nonatomic, strong) SignTaskView *signTaskView; @property (nonatomic, strong) UIImageView *taskIcon;
@property (nonatomic, strong) UILabel *titleLab;
@property (nonatomic, strong) UILabel *descrLab;
@property (nonatomic, strong) UIButton *goFinishBtn;
@end @end
@implementation DailyTaskCell @implementation DailyTaskCell
- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier indexPath:(NSIndexPath *)indexPath { - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]) { if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone; self.selectionStyle = UITableViewCellSelectionStyleNone;
self.dk_backgroundColorPicker = DKColorPickerWithKey(TabBarBG);
[self.contentView addSubview:self.taskIcon];
[self.contentView addSubview:self.titleLab];
[self.contentView addSubview:self.descrLab];
[self.contentView addSubview:self.goFinishBtn];
[self.taskIcon mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.contentView);
make.left.equalTo(self.contentView).offset(15);
make.size.mas_equalTo(CGSizeMake(40, 40));
}];
[self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.contentView).offset(12);
make.left.equalTo(self.taskIcon.mas_right).offset(12);
make.right.equalTo(self.goFinishBtn.mas_left).offset(-12);
}];
[self.descrLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.titleLab);
make.bottom.equalTo(self.contentView).offset(-12);
make.right.equalTo(self.goFinishBtn.mas_left).offset(-12);
}];
[self.goFinishBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.contentView);
make.size.mas_equalTo(CGSizeMake(80, 34));
make.right.equalTo(self.contentView).offset(-15);
}];
}
return self;
}
if (indexPath.section == 0) { - (void)goFinishAction {
[self.contentView addSubview:self.signTaskView]; if (self.delegate && [self.delegate respondsToSelector:@selector(finishWithModel:type:)]) {
self.backgroundColor = DSClearColor; if (self.type == 1) {
[self.delegate finishWithModel:self.dailyTaskModel type:1];
} else { } else {
self.dk_backgroundColorPicker = DKColorPickerWithKey(TabBarBG); [self.delegate finishWithModel:self.nTaskModel type:2];
} }
} }
return self;
} }
- (void)updateSignView:(ScoreTaskRequestModel *)requestModel { - (void)setDailyTaskModel:(DailyTaskModel *)dailyTaskModel {
[self.signTaskView updateSignView:requestModel]; _dailyTaskModel = dailyTaskModel;
// 任务图标处理
[self.taskIcon yy_setImageWithURL:[NSURL URLWithString:dailyTaskModel.img_url] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
// 任务名称标签处理(AI睡眠教练特殊处理(根据id进行判断))
if (dailyTaskModel.task_id == 1) {
NSString *str1 = dailyTaskModel.name;
NSString *space = @" ";
NSString *str2 = [NSString stringWithFormat:@"%d", dailyTaskModel.finish_point];
NSString *str3 = [NSString stringWithFormat:@"/%d分", dailyTaskModel.integral];
NSString *ai_title = [NSString stringWithFormat:@"%@%@%@%@", str1, space, str2, str3];
self.titleLab.text = ai_title;
NSMutableAttributedString *title_attText = [[NSMutableAttributedString alloc] initWithString:ai_title];
UIColor *dkColor = [self.dk_manager.themeVersion isEqualToString:DKThemeVersionNormal] ? MainTextColor : DkTitleColor;
[title_attText addAttribute:NSForegroundColorAttributeName value:dkColor range:NSMakeRange(0, str1.length)];
[title_attText addAttribute:NSForegroundColorAttributeName value:BrandColor range:NSMakeRange(str1.length + space.length, str2.length)];
[title_attText addAttribute:NSForegroundColorAttributeName value:dkColor range:NSMakeRange(str1.length + space.length + str2.length, str3.length)];
self.titleLab.attributedText = title_attText;
} else {
self.titleLab.text = dailyTaskModel.name;
}
// 任务描述标签处理
int desc_point = dailyTaskModel.task_id == 1 ? dailyTaskModel.points : dailyTaskModel.integral;
NSString *leftStr = [NSString stringWithFormat:@"+%d分", desc_point];
NSString *spaceStr = @" ";
NSString *rightStr = dailyTaskModel.task_id == 1 ? dailyTaskModel.item_name : dailyTaskModel.task_description;
NSString *descStr = [NSString stringWithFormat:@"%@%@%@", leftStr, spaceStr, rightStr];
self.descrLab.text = descStr;
NSMutableAttributedString *desc_attText = [[NSMutableAttributedString alloc] initWithString:descStr];
UIColor *dkColor1 = [self.dk_manager.themeVersion isEqualToString:DKThemeVersionNormal] ? BrandColor : ColorFromHexA(0x62C3D5, .5);
UIColor *dkColor2 = [self.dk_manager.themeVersion isEqualToString:DKThemeVersionNormal] ? SubTitleColor : ColorFromHexA(0xFFFFFF, .5);;
[desc_attText addAttribute:NSForegroundColorAttributeName value:dkColor1 range:NSMakeRange(0, leftStr.length)];
[desc_attText addAttribute:NSForegroundColorAttributeName value:dkColor2 range:NSMakeRange(leftStr.length + spaceStr.length, rightStr.length)];
self.descrLab.attributedText = desc_attText;
// 完成按钮背景色
[self dealFinishBtn:dailyTaskModel.state];
}
- (void)setNTaskModel:(NewTaskModel *)nTaskModel {
_nTaskModel = nTaskModel;
[self.taskIcon yy_setImageWithURL:[NSURL URLWithString:nTaskModel.img_url] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
self.titleLab.text = nTaskModel.name;
self.descrLab.text = [NSString stringWithFormat:@"+%d分", nTaskModel.integral];
// 完成按钮背景色
[self dealFinishBtn:nTaskModel.state];
}
- (void)dealFinishBtn:(int)state {
BOOL isEnable = YES;
NSString *btn_title = @"去完成";
DKColorPicker dk_bg_color = DKColorPickerWithColors(BrandColor, ColorFromHex(0x45A4B5), DSWhite);
DKColorPicker dk_title_color = DKColorPickerWithColors(DSWhite, DSWhite, DSWhite);
if (state == 1) {
btn_title = @"待领取";
dk_bg_color = DKColorPickerWithColors(ColorFromHexA(0xF23D4F, .1), ColorFromHexA(0xF23D4F, .1), DSWhite);
dk_title_color = DKColorPickerWithColors(ColorFromHex(0xF23D4F), ColorFromHex(0xF23D4F), DSWhite);
} else if (state == 2) {
isEnable = NO;
btn_title = @"已领取";
dk_bg_color = DKColorPickerWithColors(ColorFromHexA(0xFC7032, .1), ColorFromHexA(0xFC7032, .1), DSWhite);
dk_title_color = DKColorPickerWithColors(ColorFromHex(0xFC7032), ColorFromHex(0xFC7032), DSWhite);
}
self.goFinishBtn.userInteractionEnabled = isEnable;
[self.goFinishBtn setTitle:btn_title forState:UIControlStateNormal];
self.goFinishBtn.dk_backgroundColorPicker = dk_bg_color;
[self.goFinishBtn dk_setTitleColorPicker:dk_title_color forState:UIControlStateNormal];
} }
#pragma mark - lazy #pragma mark - lazy
- (SignTaskView *)signTaskView { - (UIImageView *)taskIcon {
if (!_signTaskView) { if (!_taskIcon) {
_signTaskView = [[SignTaskView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth - 30, 186)]; _taskIcon = [UIImageView new];
_taskIcon.dk_alphaPicker = DKAlphaPickerWithAlphas(1.0, .5, 1.0);
}
return _taskIcon;
}
- (UILabel *)titleLab {
if (!_titleLab) {
_titleLab = [UILabel labWithFont:SysFont(15.0)];
_titleLab.dk_textColorPicker = DKColorPickerWithColors(MainTextColor, DkTitleColor, DSWhite);
}
return _titleLab;
}
- (UILabel *)descrLab {
if (!_descrLab) {
_descrLab = [UILabel labWithTextColor:BrandColor font:SysFont(14.0)];
}
return _descrLab;
}
- (UIButton *)goFinishBtn {
if (!_goFinishBtn) {
_goFinishBtn = [UIButton btnWithTitle:@"去完成" font:BoldFont(14.0)];
_goFinishBtn.userInteractionEnabled = NO;
[_goFinishBtn addTarget:self action:@selector(goFinishAction) forControlEvents:UIControlEventTouchUpInside];
[_goFinishBtn cornerRadius:17.0];
} }
return _signTaskView; return _goFinishBtn;
} }
@end @end
...@@ -35,13 +35,13 @@ ...@@ -35,13 +35,13 @@
}]; }];
[ScoreTaskRequestModel queryUserDailyTaskListWithCompletion:^(ScoreTaskRequestModel * _Nonnull requestModel) { [ScoreTaskRequestModel queryUserDailyTaskListWithCompletion:^(ScoreTaskRequestModel * _Nonnull requestModel) {
if (requestModel.resCode == DSResCodeSuccess) { if (requestModel.resCode == DSResCodeSuccess) {
[self.dailyTaskView updateTaskView:requestModel];
} }
}]; }];
} }
#pragma mark - DailyTaskViewDelegate #pragma mark - DailyTaskViewDelegate
- (void)scrollViewDidScroll:(BOOL)isMax { - (void)didScrollToMaxOffsetY:(BOOL)isMax {
if (isMax) { if (isMax) {
self.naviTitle = @"每日任务"; self.naviTitle = @"每日任务";
self.isNeedUpdateStatusBarStyle = YES; self.isNeedUpdateStatusBarStyle = YES;
...@@ -55,6 +55,10 @@ ...@@ -55,6 +55,10 @@
} }
} }
- (void)popViewController {
[self.navigationController popViewControllerAnimated:NO];
}
#pragma mark - lazy #pragma mark - lazy
- (DailyTaskView *)dailyTaskView { - (DailyTaskView *)dailyTaskView {
if (!_dailyTaskView) { if (!_dailyTaskView) {
......
...@@ -27,6 +27,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -27,6 +27,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, assign) int integral; @property (nonatomic, assign) int integral;
/// 任务描述详情 /// 任务描述详情
@property (nonatomic, copy) NSString *task_description; @property (nonatomic, copy) NSString *task_description;
/// 任务名
@property (nonatomic, copy) NSString *name;
/// 任务描述 /// 任务描述
@property (nonatomic, copy) NSString *item_name; @property (nonatomic, copy) NSString *item_name;
/// 跳转页面url /// 跳转页面url
......
...@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
/// 监听scrollview是否滚动到临界值 /// 监听scrollview是否滚动到临界值
/// @param isMax isMax /// @param isMax isMax
- (void)didScrollToMaxOffsetY:(BOOL)isMax; - (void)didScrollToMaxOffsetY:(BOOL)isMax;
/// 退出当前页面
- (void)popViewController;
@end @end
/// 每日任务页面自定义主view /// 每日任务页面自定义主view
...@@ -24,6 +26,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -24,6 +26,7 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)initWithDelegate:(id<DailyTaskViewDelegate>)delegate; - (instancetype)initWithDelegate:(id<DailyTaskViewDelegate>)delegate;
- (void)updateSignView:(ScoreTaskRequestModel *)requestModel; - (void)updateSignView:(ScoreTaskRequestModel *)requestModel;
- (void)updateTaskView:(ScoreTaskRequestModel *)requestModel;
@end @end
......
...@@ -22,12 +22,14 @@ ...@@ -22,12 +22,14 @@
- (instancetype)initWithFrame:(CGRect)frame { - (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) { if (self = [super initWithFrame:frame]) {
[self debugViewShowBorderWithColor:[UIColor greenColor]];
[self.contentView addSubview:self.dayView]; [self.contentView addSubview:self.dayView];
[self.contentView addSubview:self.giftIV]; [self.contentView addSubview:self.giftIV];
[self.contentView addSubview:self.scoreLab]; [self.contentView addSubview:self.scoreLab];
[self.contentView addSubview:self.doneIV]; [self.contentView addSubview:self.doneIV];
[self.contentView addSubview:self.dayLab];
[self.contentView addSubview:self.line];
[self.contentView addSubview:self.bigDot];
[self.contentView addSubview:self.smallDot];
[self.dayView mas_makeConstraints:^(MASConstraintMaker *make) { [self.dayView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.equalTo(self.contentView); make.top.left.equalTo(self.contentView);
...@@ -40,6 +42,19 @@ ...@@ -40,6 +42,19 @@
make.centerX.equalTo(self.dayView); make.centerX.equalTo(self.dayView);
make.bottom.equalTo(self.dayView).offset(-6); make.bottom.equalTo(self.dayView).offset(-6);
}]; }];
[self.dayLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.dayView);
make.top.equalTo(self.dayView.mas_bottom).offset(18);
}];
[self.bigDot mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.dayView);
make.centerY.equalTo(self.line);
make.size.mas_equalTo(CGSizeMake(6, 6));
}];
[self.smallDot mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self.bigDot);
make.size.mas_equalTo(CGSizeMake(2, 2));
}];
} }
return self; return self;
} }
...@@ -66,6 +81,19 @@ ...@@ -66,6 +81,19 @@
} else { // 已签到不显示礼物图标 } else { // 已签到不显示礼物图标
self.giftIV.hidden = YES; self.giftIV.hidden = YES;
} }
// 动画效果
if (signModel.state == 0 && (requestModel.cur_day == 3 || requestModel.cur_day == 7)) {
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
animation.duration = 2.0;
animation.repeatCount = HUGE_VALF;
animation.autoreverses = YES;
animation.removedOnCompletion = NO;
animation.fromValue = [NSNumber numberWithFloat:1.2];
animation.toValue = [NSNumber numberWithFloat:.8];
[self.giftIV.layer addAnimation:animation forKey:@"scale-layer"];
} else {
[self.giftIV.layer removeAllAnimations];
}
// 积分显示 // 积分显示
if (signModel.state == 0 && (signModel.day == 3 || signModel.day == 7)) { if (signModel.state == 0 && (signModel.day == 3 || signModel.day == 7)) {
...@@ -75,13 +103,15 @@ ...@@ -75,13 +103,15 @@
} }
self.scoreLab.text = [NSString stringWithFormat:@"+%d", signModel.point]; self.scoreLab.text = [NSString stringWithFormat:@"+%d", signModel.point];
self.scoreLab.font = signModel.state == 1 ? SysFont(12.0) : SysFont(14.0); self.scoreLab.font = signModel.state == 1 ? SysFont(12.0) : SysFont(14.0);
[self.scoreLab sizeToFit]; CGFloat sH = [NSString getHeightWithText:self.scoreLab.text withFont:self.scoreLab.font withMaxWidth:30];
[self.scoreLab mas_makeConstraints:^(MASConstraintMaker *make) { [self.scoreLab mas_remakeConstraints:^(MASConstraintMaker *make) {
if (signModel.state == 1) { if (signModel.state == 1) {
make.centerX.equalTo(self.dayView); make.centerX.equalTo(self.dayView);
make.top.equalTo(self.dayView).offset(6); make.top.equalTo(self.dayView).offset(6);
make.size.mas_equalTo(CGSizeMake(30, sH));
} else { } else {
make.center.equalTo(self.dayView); make.center.equalTo(self.dayView);
make.size.mas_equalTo(CGSizeMake(30, sH));
} }
}]; }];
DKColorPicker score_dk_text_color = is_cur_day ? DKColorPickerWithColors(DSWhite, DkTitleColor, DSWhite) : DKColorPickerWithColors(ColorFromHex(0xFC7032), ColorFromHex(0xFC7032), DSWhite); DKColorPicker score_dk_text_color = is_cur_day ? DKColorPickerWithColors(DSWhite, DkTitleColor, DSWhite) : DKColorPickerWithColors(ColorFromHex(0xFC7032), ColorFromHex(0xFC7032), DSWhite);
...@@ -89,6 +119,34 @@ ...@@ -89,6 +119,34 @@
// 完成图标显示 // 完成图标显示
self.doneIV.hidden = signModel.state == 0; self.doneIV.hidden = signModel.state == 0;
// 第几天显示
self.dayLab.text = requestModel.cur_day == signModel.day ? @"今天" : [NSString stringWithFormat:@"第%d天", signModel.day];
DKColorPicker day_dk_text_color = is_cur_day ? DKColorPickerWithColors(ColorFromHex(0xFC7032), ColorFromHex(0xB5552E), DSWhite) : DKColorPickerWithColors(SmallTextColor, ColorFromHexA(0xFFFFFF, .3), DSWhite);
self.dayLab.dk_textColorPicker = day_dk_text_color;
// line
[self.line mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.dayView.mas_bottom).offset(11);
make.height.equalTo(@1);
if (indexPath.row == 0) {
make.left.equalTo(self.dayView.mas_centerX);
make.right.equalTo(self.contentView);
} else if (indexPath.row == requestModel.signList.count - 1) {
make.left.equalTo(self.contentView);
make.right.equalTo(self.dayView.mas_centerX);
} else {
make.left.right.equalTo(self.contentView);
}
}];
// 大圆点
DKColorPicker big_dk_bg_color = is_cur_day ? DKColorPickerWithColors(ColorFromHex(0xFC7032), ColorFromHex(0xB5552E), DSWhite) : DKColorPickerWithColors(ColorFromHex(0xF6F6F6), ColorFromHex(0x1E2332), DSWhite);
self.bigDot.dk_backgroundColorPicker = big_dk_bg_color;
// 小圆点
DKColorPicker small_dk_bg_color = is_cur_day ? DKColorPickerWithColors(DSWhite, AlertDarkColor, DSWhite) : DKColorPickerWithColors(ColorFromHex(0xDDDDDD), ColorFromHex(0x3B4258), DSWhite);
self.smallDot.dk_backgroundColorPicker = small_dk_bg_color;
} }
#pragma mark - lazy #pragma mark - lazy
...@@ -123,4 +181,36 @@ ...@@ -123,4 +181,36 @@
return _doneIV; return _doneIV;
} }
- (UILabel *)dayLab {
if (!_dayLab) {
_dayLab = [UILabel labWithFont:SysFont(12.0)];
_dayLab.textAlignment = NSTextAlignmentCenter;
}
return _dayLab;
}
- (UIView *)line {
if (!_line) {
_line = [UIView new];
_line.dk_backgroundColorPicker = DKColorPickerWithColors(ColorFromHex(0xF6F6F6), ColorFromHex(0x1E2332), DSWhite);
}
return _line;
}
- (UIView *)bigDot {
if (!_bigDot) {
_bigDot = [UIView new];
[_bigDot cornerRadius:3.0];
}
return _bigDot;
}
- (UIView *)smallDot {
if (!_smallDot) {
_smallDot = [UIView new];
[_smallDot cornerRadius:1.0];
}
return _smallDot;
}
@end @end
...@@ -47,7 +47,24 @@ ...@@ -47,7 +47,24 @@
} }
- (void)signAction { - (void)signAction {
[ScoreTaskRequestModel receiveUserDailySignPointWithCurDay:self.requestModel.cur_day completion:^(ScoreTaskRequestModel * _Nonnull requestModel) {
if (requestModel.resCode == DSResCodeSuccess) {
// 回调数据到DailyTaskView
// 更新按钮状态
[self.signBtn setTitle:@"已签到" forState:UIControlStateNormal];
self.signBtn.userInteractionEnabled = NO;
// 刷新签到列表
self.requestModel.sign_flag = 1;
[self.requestModel.signList enumerateObjectsUsingBlock:^(SignModel *obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (self.requestModel.cur_day == obj.day) {
obj.state = 1;
}
}];
[self.signMainView reloadData];
}
}];
} }
- (void)updateSignView:(ScoreTaskRequestModel *)requestModel { - (void)updateSignView:(ScoreTaskRequestModel *)requestModel {
...@@ -55,6 +72,9 @@ ...@@ -55,6 +72,9 @@
self.requestModel = requestModel; self.requestModel = requestModel;
self.signList = requestModel.signList; self.signList = requestModel.signList;
[self.signMainView reloadData]; [self.signMainView reloadData];
[self.signBtn setTitle:(requestModel.sign_flag == 0 ? @"签到领积分" : @"已签到") forState:UIControlStateNormal];
self.signBtn.userInteractionEnabled = requestModel.sign_flag == 0;
} }
} }
...@@ -100,6 +120,7 @@ ...@@ -100,6 +120,7 @@
- (UIButton *)signBtn { - (UIButton *)signBtn {
if (!_signBtn) { if (!_signBtn) {
_signBtn = [UIButton btnWithTitle:@"签到领积分" font:BoldFont(16)]; _signBtn = [UIButton btnWithTitle:@"签到领积分" font:BoldFont(16)];
_signBtn.userInteractionEnabled = NO;
[_signBtn dk_setTitleColorPicker:DKColorPickerWithColors(DSWhite, DkTitleColor, DSWhite) forState:UIControlStateNormal]; [_signBtn dk_setTitleColorPicker:DKColorPickerWithColors(DSWhite, DkTitleColor, DSWhite) forState:UIControlStateNormal];
[_signBtn dk_setBackgroundColorPicker:DKColorPickerWithColors(ColorFromHex(0xFEA961), ColorFromHex(0xB77C4E), DSWhite)]; [_signBtn dk_setBackgroundColorPicker:DKColorPickerWithColors(ColorFromHex(0xFEA961), ColorFromHex(0xB77C4E), DSWhite)];
[_signBtn addTarget:self action:@selector(signAction) forControlEvents:UIControlEventTouchUpInside]; [_signBtn addTarget:self action:@selector(signAction) forControlEvents:UIControlEventTouchUpInside];
......
//
// TaskGroupModel.h
// DreamSleep
//
// Created by peter on 2022/6/30.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, TaskType) {
TaskTypeDaily, // 每日任务
TaskTypeNew, // 新手任务
};
/// 每日任务和新手任务组数据
@interface TaskGroupModel : NSObject
@property (nonatomic, assign) TaskType taskType;
@property (nonatomic, strong) NSArray *task_items;
@property (nonatomic, strong) NSArray *task_news;
+ (instancetype)modelWithTaskType:(TaskType)taskType taskArr:(NSArray *)taskArr;
@end
NS_ASSUME_NONNULL_END
//
// TaskGroupModel.m
// DreamSleep
//
// Created by peter on 2022/6/30.
//
#import "TaskGroupModel.h"
@implementation TaskGroupModel
+ (instancetype)modelWithTaskType:(TaskType)taskType taskArr:(NSArray *)taskArr {
TaskGroupModel *groupModel = [TaskGroupModel new];
groupModel.taskType = taskType;
if (taskType == TaskTypeDaily) {
groupModel.task_items = taskArr;
} else if (taskType == TaskTypeNew) {
groupModel.task_news = taskArr;
}
return groupModel;
}
@end
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
<key>AFNetworking.xcscheme_^#shared#^_</key> <key>AFNetworking.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>13</integer> <integer>15</integer>
</dict> </dict>
<key>DKNightVersion.xcscheme_^#shared#^_</key> <key>DKNightVersion.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>11</integer> <integer>7</integer>
</dict> </dict>
<key>DOUAudioStreamer.xcscheme_^#shared#^_</key> <key>DOUAudioStreamer.xcscheme_^#shared#^_</key>
<dict> <dict>
...@@ -22,12 +22,12 @@ ...@@ -22,12 +22,12 @@
<key>FreeStreamer.xcscheme_^#shared#^_</key> <key>FreeStreamer.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>10</integer> <integer>18</integer>
</dict> </dict>
<key>IQKeyboardManager.xcscheme_^#shared#^_</key> <key>IQKeyboardManager.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>5</integer> <integer>9</integer>
</dict> </dict>
<key>MBProgressHUD.xcscheme_^#shared#^_</key> <key>MBProgressHUD.xcscheme_^#shared#^_</key>
<dict> <dict>
...@@ -37,47 +37,47 @@ ...@@ -37,47 +37,47 @@
<key>MJRefresh.xcscheme_^#shared#^_</key> <key>MJRefresh.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>18</integer> <integer>14</integer>
</dict> </dict>
<key>Masonry.xcscheme_^#shared#^_</key> <key>Masonry.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>15</integer> <integer>5</integer>
</dict> </dict>
<key>Pods-DreamSleep.xcscheme_^#shared#^_</key> <key>Pods-DreamSleep.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>7</integer> <integer>19</integer>
</dict> </dict>
<key>Reachability.xcscheme_^#shared#^_</key> <key>Reachability.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>14</integer> <integer>10</integer>
</dict> </dict>
<key>YYCache.xcscheme_^#shared#^_</key> <key>YYCache.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>16</integer> <integer>4</integer>
</dict> </dict>
<key>YYImage.xcscheme_^#shared#^_</key> <key>YYImage.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>19</integer> <integer>13</integer>
</dict> </dict>
<key>YYModel.xcscheme_^#shared#^_</key> <key>YYModel.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>17</integer> <integer>8</integer>
</dict> </dict>
<key>YYWebImage.xcscheme_^#shared#^_</key> <key>YYWebImage.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>4</integer> <integer>17</integer>
</dict> </dict>
<key>lottie-ios.xcscheme_^#shared#^_</key> <key>lottie-ios.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>8</integer> <integer>11</integer>
</dict> </dict>
</dict> </dict>
</dict> </dict>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<key>UnityFramework.xcscheme_^#shared#^_</key> <key>UnityFramework.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>9</integer> <integer>16</integer>
</dict> </dict>
</dict> </dict>
</dict> </dict>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!