Commit 95334adc cgx

我的页面任务积分UI搭建

1 个父辈 97eb5f59
正在显示 56 个修改的文件 包含 544 行增加31 行删除
......@@ -30,8 +30,12 @@
// leftItem
UILabel *leftLab = [UILabel dkLabWithText:@"小梦睡眠" font:BoldFont(24.0)];
UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:leftLab];
self.navigationItem.leftBarButtonItem = leftItem;
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftLab];
// rightItem
UIButton *dailyTaskBtn = [UIButton new];
[dailyTaskBtn addTarget:self action:@selector(jumpToDailyTaskPage) forControlEvents:UIControlEventTouchUpInside];
[dailyTaskBtn dk_setImage:DKImagePickerWithNames(@"ic_home_meirirw", @"dk_ic_home_meirirw", @"ic_home_meirirw") forState:UIControlStateNormal];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:dailyTaskBtn];;
[self.view addSubview:self.homeTV];
[self.view addSubview:self.noisePlayBar];
......@@ -195,6 +199,10 @@
}
}
- (void)jumpToDailyTaskPage {
}
#pragma mark - 导航栏日间、黑夜模式
- (NaviStyle)navigationBarStyle {
return [self.dk_manager.themeVersion isEqualToString:DKThemeVersionNormal] ? NaviStyleLight : NaviStyleDark;
......
......@@ -91,6 +91,38 @@
self.isNeedUpdateStatusBarStyle = isUpdate;
}
- (void)dealScoreTaskAction:(NSInteger)index {
switch (index) {
case 1: // 每日任务
{
}
break;
case 2: // 我的积分
{
}
break;
case 3: // 开通AI
{
self.tabBarController.selectedIndex = 1;
}
break;
case 4: // 我的睡眠报告
{
}
break;
case 5: // 我的睡眠评测
{
}
break;
default:
break;
}
}
#pragma mark - Actions
- (void)modifyUserInfoAction {
// 账户与资料页面
......
......@@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
@protocol ProfileHeaderViewDelegate <NSObject>
- (void)didClickModifyUserBtn;
- (void)didClickScoreTaskBtn:(NSInteger)index;
@end
@interface ProfileHeaderView : UIView
......
......@@ -15,14 +15,75 @@
@property (nonatomic, strong) UIImageView *levelIV;
@property (nonatomic, strong) UIButton *modifyBtn;
@property (nonatomic, strong) UIView *scoreTaskEvaluateView;
@property (nonatomic, strong) UILabel *scoreCountLab;
@property (nonatomic, strong) UIButton *openAIBtn;
@property (nonatomic, strong) UIView *reportReviewsView;
@end
@implementation ProfileHeaderView
#pragma mark - Action
- (void)modifyAction {
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickModifyUserBtn)]) {
[self.delegate didClickModifyUserBtn];
}
}
- (void)updateUserView {
UserModel *model = [LoginUtils getUserLoginData];
if (model) {
[self.portraitIV yy_setImageWithURL:[NSURL URLWithString:model.face_img] placeholder:[UIImage imageNamed:@"portrait"]];
self.titleLab.text = model.nick_name;
[self.titleLab sizeToFit];
self.levelIV.hidden = NO;
[self.levelIV yy_setImageWithURL:[NSURL URLWithString:model.level_img] placeholder:[UIImage imageNamed:@"level_img_placeholder"]];
[self.titleLab mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.portraitIV.mas_right).offset(20);
make.top.equalTo(self.portraitIV).offset(4);
}];
[self.levelIV mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.titleLab).offset(-8);
make.top.equalTo(self.titleLab.mas_bottom).offset(4);
make.size.mas_equalTo(CGSizeMake(95, 35));
}];
self.openAIBtn.hidden = YES;
self.reportReviewsView.hidden = NO;
self.scoreCountLab.text = @"总积分:3333";
} else {
self.portraitIV.image = [UIImage imageNamed:@"portrait"];
self.titleLab.text = @"注册/登录";
[self.titleLab sizeToFit];
self.levelIV.hidden = YES;
[self.titleLab mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.portraitIV.mas_right).offset(20);
make.centerY.equalTo(self.portraitIV);
}];
self.openAIBtn.hidden = NO;
self.reportReviewsView.hidden = YES;
self.scoreCountLab.text = @"我的积分";
}
}
- (void)scoreTaskAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickScoreTaskBtn:)]) {
[self.delegate didClickScoreTaskBtn:sender.tag];
}
}
#pragma mark - life
- (instancetype)initWithDelegate:(id<ProfileHeaderViewDelegate>)delegate {
if (self = [super initWithFrame:CGRectMake(0, 0, kScreenWidth, 338)]) {
if (self = [super initWithFrame:CGRectMake(0, 0, 0, 0)]) {
_delegate = delegate;
[self mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.greaterThanOrEqualTo(@338);
make.width.equalTo(@(kScreenWidth));
}];
UIView *userInfoView = [UIView new];
[self addSubview:userInfoView];
self.userInfoView = userInfoView;
......@@ -31,6 +92,9 @@
[self addSubview:scoreTaskEvaluateView];
self.scoreTaskEvaluateView = scoreTaskEvaluateView;
UIButton *dailyTaskBtn = [self btnWithDKImagePicker:DKImagePickerWithNames(@"btn_person_meirirenwu", @"dk_btn_person_meirirenwu", @"btn_person_meirirenwu") tag:1];
UIButton *myScoreBtn = [self btnWithDKImagePicker:DKImagePickerWithNames(@"btn_person_wodejifen", @"dk_btn_person_wodejifen", @"btn_person_wodejifen") tag:2];
[self.userInfoView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(self);
make.height.equalTo(@172);
......@@ -38,9 +102,35 @@
}];
[self.scoreTaskEvaluateView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(self);
make.height.equalTo(@166);
make.top.equalTo(self.userInfoView.mas_bottom);
make.left.right.equalTo(self);
make.bottom.equalTo(self).priorityHigh();
}];
CGFloat btn_width = (kScreenWidth - 30 - 13)/2.0;
CGFloat btn_height = 62*btn_width/166.0;
[dailyTaskBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.scoreTaskEvaluateView).offset(15);
make.top.equalTo(self.scoreTaskEvaluateView).offset(19);
make.right.equalTo(myScoreBtn.mas_left).offset(-13);
make.height.equalTo(@(btn_height));
make.size.equalTo(myScoreBtn);
}];
[myScoreBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.scoreTaskEvaluateView).offset(-15);
make.top.equalTo(dailyTaskBtn);
}];
CGFloat ai_btn_width = kScreenWidth - 30;
CGFloat ai_btn_height = 62*ai_btn_width/345.0;
[self.openAIBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.scoreTaskEvaluateView).offset(15);
make.right.equalTo(self.scoreTaskEvaluateView).offset(-15);
make.top.equalTo(dailyTaskBtn.mas_bottom).offset(18);
make.height.equalTo(@(ai_btn_height));
make.bottom.equalTo(self.scoreTaskEvaluateView).offset(-19);
}];
[self.reportReviewsView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.openAIBtn);
}];
UILabel *meLab = [UILabel dkLabWithText:@"我的" font:BoldFont(24.0)];
......@@ -85,6 +175,10 @@
make.width.equalTo(@(width));
}];
// 更新布局
[self.scoreTaskEvaluateView layoutIfNeeded];
[self layoutIfNeeded];
[self updateUserView];
// 监听用户数据更新通知
......@@ -97,42 +191,131 @@
[[NSNotificationCenter defaultCenter] removeObserver:self name:HasUpdateUserDataNoti object:nil];
}
#pragma mark - Action
- (void)modifyAction {
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickModifyUserBtn)]) {
[self.delegate didClickModifyUserBtn];
#pragma mark - lazy
- (UIButton *)openAIBtn {
if (!_openAIBtn) {
_openAIBtn = [UIButton new];
_openAIBtn.hidden = YES;
[_openAIBtn dk_setImage:DKImagePickerWithNames(@"btn_person_kaitong", @"dk_btn_person_kaitong", @"btn_person_kaitong") forState:UIControlStateNormal];
[_openAIBtn.imageView setContentMode:UIViewContentModeScaleAspectFill];
_openAIBtn.contentHorizontalAlignment= UIControlContentHorizontalAlignmentFill;
_openAIBtn.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
_openAIBtn.tag = 3;
[_openAIBtn addTarget:self action:@selector(scoreTaskAction:) forControlEvents:UIControlEventTouchUpInside];
[self.scoreTaskEvaluateView addSubview:_openAIBtn];
UILabel *titleLab = [UILabel labWithText:@"开通AI睡眠教练享专业报告与测评" font:BoldFont(14.0) fit:YES];
titleLab.dk_textColorPicker = DKColorPickerWithColors(MainTextColor, DkTitleColor, DSWhite);
[_openAIBtn addSubview:titleLab];
[titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(_openAIBtn).offset(12);
make.centerY.equalTo(_openAIBtn);
}];
UILabel *openLab = [UILabel labWithText:@"去开通" textColor:DSWhite font:BoldFont(12.0)];
openLab.textAlignment = NSTextAlignmentCenter;
[openLab cornerRadius:12.0];
openLab.backgroundColor = BrandColor;
[_openAIBtn addSubview:openLab];
[openLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(_openAIBtn).offset(-12);
make.centerY.equalTo(_openAIBtn);
make.size.mas_equalTo(CGSizeMake(76, 24));
}];
}
return _openAIBtn;
}
- (void)updateUserView {
UserModel *model = [LoginUtils getUserLoginData];
if (model) {
[self.portraitIV yy_setImageWithURL:[NSURL URLWithString:model.face_img] placeholder:[UIImage imageNamed:@"portrait"]];
self.titleLab.text = model.nick_name;
[self.titleLab sizeToFit];
self.levelIV.hidden = NO;
[self.levelIV yy_setImageWithURL:[NSURL URLWithString:model.level_img] placeholder:[UIImage imageNamed:@"level_img_placeholder"]];
- (UIView *)reportReviewsView {
if (!_reportReviewsView) {
_reportReviewsView = [UIView new];
_reportReviewsView.dk_backgroundColorPicker = DKColorPickerWithColors(DSWhite, ColorFromHex(0x2A314B), DSWhite);
[_reportReviewsView cornerRadius:12.0];
[self.scoreTaskEvaluateView addSubview:_reportReviewsView];
[self.titleLab mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.portraitIV.mas_right).offset(20);
make.top.equalTo(self.portraitIV).offset(4);
UIButton *reportBtn = [UIButton btnWithTitle:@"我的睡眠报告" font:BoldFont(15.0)];
reportBtn.tag = 4;
reportBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 4, 0, 0);
[reportBtn addTarget:self action:@selector(scoreTaskAction:) forControlEvents:UIControlEventTouchUpInside];
[reportBtn dk_setTitleColorPicker:DKColorPickerWithColors(MainTextColor, DkTitleColor, DSWhite) forState:UIControlStateNormal];
[reportBtn dk_setImage:DKImagePickerWithNames(@"sleep_report", @"dk_sleep_report", @"sleep_report") forState:UIControlStateNormal];
[_reportReviewsView addSubview:reportBtn];
UIView *line = [UIView new];
line.dk_backgroundColorPicker = DKColorPickerWithColors(DivideLineColor, DarkColor, DSWhite);
[_reportReviewsView addSubview:line];
UIButton *reviewBtn = [UIButton btnWithTitle:@"我的睡眠测评" font:BoldFont(15.0)];
reviewBtn.tag = 5;
reviewBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 4, 0, 0);
[reviewBtn addTarget:self action:@selector(scoreTaskAction:) forControlEvents:UIControlEventTouchUpInside];
[reviewBtn dk_setTitleColorPicker:DKColorPickerWithColors(MainTextColor, DkTitleColor, DSWhite) forState:UIControlStateNormal];
[reviewBtn dk_setImage:DKImagePickerWithNames(@"sleep_review", @"dk_sleep_review", @"sleep_review") forState:UIControlStateNormal];
[_reportReviewsView addSubview:reviewBtn];
[reportBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.bottom.equalTo(_reportReviewsView);
make.right.equalTo(reviewBtn.mas_left);
}];
[self.levelIV mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.titleLab).offset(-8);
make.top.equalTo(self.titleLab.mas_bottom).offset(4);
make.size.mas_equalTo(CGSizeMake(95, 35));
[reviewBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.right.bottom.equalTo(_reportReviewsView);
make.size.equalTo(reportBtn);
}];
} else {
self.portraitIV.image = [UIImage imageNamed:@"portrait"];
self.titleLab.text = @"注册/登录";
[self.titleLab sizeToFit];
self.levelIV.hidden = YES;
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(_reportReviewsView).offset(11);
make.bottom.equalTo(_reportReviewsView).offset(-11);
make.width.equalTo(@1);
make.center.equalTo(_reportReviewsView);
}];
}
return _reportReviewsView;
}
[self.titleLab mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.portraitIV.mas_right).offset(20);
make.centerY.equalTo(self.portraitIV);
#pragma mark - builders
- (UIButton *)btnWithDKImagePicker:(DKImagePicker)imgPicker tag:(NSInteger)tag {
UIButton *btn = [UIButton new];
btn.tag = tag;
[btn dk_setImage:imgPicker forState:UIControlStateNormal];
[btn.imageView setContentMode:UIViewContentModeScaleAspectFill];
btn.contentHorizontalAlignment= UIControlContentHorizontalAlignmentFill;
btn.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
[btn addTarget:self action:@selector(scoreTaskAction:) forControlEvents:UIControlEventTouchUpInside];
[self.scoreTaskEvaluateView addSubview:btn];
UILabel *titleLab = [UILabel labWithText:(tag == 1 ? @"每日任务" : @"我的积分") font:BoldFont(15.0) fit:YES];
titleLab.dk_textColorPicker = DKColorPickerWithColors(MainTextColor, DkTitleColor, DSWhite);
[btn addSubview:titleLab];
[titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(btn).offset(12);
make.top.equalTo(btn).offset(10);
}];
if (tag == 1) {
UILabel *tipsLab = [UILabel labWithText:@"做任务攒积分 >" textColor:BrandColor font:SysFont(8.0)];
tipsLab.textAlignment = NSTextAlignmentCenter;
[tipsLab cornerRadius:8.0];
tipsLab.layer.borderWidth = .5;
tipsLab.layer.borderColor = BrandColor.CGColor;
[btn addSubview:tipsLab];
[tipsLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(titleLab);
make.bottom.equalTo(btn).offset(-10);
make.size.mas_equalTo(CGSizeMake(65, 15));
}];
} else {
UILabel *scoreCountLab = [UILabel labWithFont:SysFont(12.0)];
scoreCountLab.dk_textColorPicker = DKColorPickerWithColors(SubTitleColor, DkTitleColor, DSWhite);
[btn addSubview:scoreCountLab];
self.scoreCountLab = scoreCountLab;
[scoreCountLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(titleLab);
make.bottom.equalTo(btn).offset(-10);
make.right.equalTo(btn).offset(-79);
}];
}
return btn;
}
@end
......@@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)modifyUserInfoAction;
- (void)showNaviBar:(CGFloat)alpha;
- (void)isUpdateStatusStyle:(BOOL)isUpdate;
- (void)dealScoreTaskAction:(NSInteger)index;
@end
/// 个人中心TableView
......
......@@ -223,6 +223,12 @@
}
}
- (void)didClickScoreTaskBtn:(NSInteger)index {
if (self.profileDelegate && [self.profileDelegate respondsToSelector:@selector(dealScoreTaskAction:)] ) {
[self.profileDelegate dealScoreTaskAction:index];
}
}
#pragma mark - lazy
- (NSArray *)profileGroupArr {
if (!_profileGroupArr) {
......
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "btn_person_kaitong.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "btn_person_kaitong@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "btn_person_kaitong@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "btn_person_meirirenwu.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "btn_person_meirirenwu@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "btn_person_meirirenwu@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "btn_person_wodejifen.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "btn_person_wodejifen@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "btn_person_wodejifen@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "dk_btn_person_kaitong.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "dk_btn_person_kaitong@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "dk_btn_person_kaitong@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "dk_btn_person_meirirenwu.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "dk_btn_person_meirirenwu@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "dk_btn_person_meirirenwu@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "dk_btn_person_wodejifen.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "dk_btn_person_wodejifen@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "dk_btn_person_wodejifen@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "dk_ic_home_meirirw.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "dk_ic_home_meirirw@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "dk_ic_home_meirirw@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "dk_sleep_report.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "dk_sleep_report@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "dk_sleep_report@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "dk_sleep_review.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "dk_sleep_review@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "dk_sleep_review@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "ic_home_meirirw.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ic_home_meirirw@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ic_home_meirirw@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "sleep_report.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "sleep_report@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "sleep_report@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "sleep_review.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "sleep_review@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "sleep_review@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!