ProfileHeaderView.m 15.7 KB
//
//  ProfileHeaderView.m
//  DreamSleep
//
//  Created by peter on 2022/5/18.
//

#import "ProfileHeaderView.h"

@interface ProfileHeaderView ()
@property (nonatomic, strong) UIView *userInfoView;
@property (nonatomic, strong) UILabel *meLab;
@property (nonatomic, strong) UIImageView *portraitIV;
@property (nonatomic, strong) UILabel *titleLab;
@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)monitorAIStartNoti {
//    UserModel *usrModel = [LoginUtils getUserLoginData];
//    self.openAIBtn.hidden = usrModel.is_access == 1;
//    self.reportReviewsView.hidden = !self.openAIBtn.hidden;
//}

- (void)updateUserView {
    UserModel *model = [LoginUtils getUserLoginData];
    if (model) {
        [self.portraitIV yy_setImageWithURL:[NSURL URLWithString:model.face_img] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
        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.centerY.equalTo(self.portraitIV);
        }];
        
//        [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 = model.is_access == 1;
//        self.reportReviewsView.hidden = !self.openAIBtn.hidden;
//        self.scoreCountLab.text = [NSString stringWithFormat:@"我的积分:%d", model.total_points];
    } else {
        self.portraitIV.image = [UIImage imageNamed:@"basicPlaceholder"];
        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, 0, 0)]) {
        _delegate = delegate;
        
//        [self mas_makeConstraints:^(MASConstraintMaker *make) {
//            make.height.greaterThanOrEqualTo(@338);
//            make.width.equalTo(@(kScreenWidth));
//        }];
        [self mas_makeConstraints:^(MASConstraintMaker *make) {
            make.height.greaterThanOrEqualTo(@196);
            make.width.equalTo(@(kScreenWidth));
        }];
        
        UIView *userInfoView = [UIView new];
        [self addSubview:userInfoView];
        self.userInfoView = userInfoView;
        
        /*
        UIView *scoreTaskEvaluateView = [UIView new];
        [self addSubview:scoreTaskEvaluateView];
        self.scoreTaskEvaluateView = scoreTaskEvaluateView;
        [scoreTaskEvaluateView debugViewShowBorder];
        
        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);
            make.top.left.right.equalTo(self);
        }];
        /*
        [self.scoreTaskEvaluateView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.width.equalTo(self);
            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)];
        [self.userInfoView addSubview:meLab];
        self.meLab = meLab;
        
        UIImageView *portraitIV = [UIImageView new];
        [portraitIV cornerRadius:30];
        portraitIV.dk_alphaPicker = DKAlphaPickerWithAlphas(1.0, .5, .5);
        [self.userInfoView addSubview:portraitIV];
        self.portraitIV = portraitIV;
        
        UILabel *titleLab = [UILabel dkLabWithFont:BoldFont(16.0)];
        [self.userInfoView addSubview:titleLab];
        self.titleLab = titleLab;
        
        UIImageView *levelIV = [UIImageView new];
        [self.userInfoView addSubview:levelIV];
        self.levelIV = levelIV;
        
        UIButton *modifyBtn = [UIButton btnWithTitle:@"点击修改信息" font:SysFont(12)];
        [modifyBtn dk_setTitleColorPicker:DKColorPickerWithColors(BrandColor, ColorFromHex(0x45A4B5), DSWhite) forState:UIControlStateNormal];
        [modifyBtn dk_setImage:DKImagePickerWithNames(@"ic_person_more_normal", @"dk_ic_person_more_normal", @"ic_person_more_normal") forState:UIControlStateNormal];
        [modifyBtn adjustLayoutWithType:UIButtonLayoutTypeLeftTitleRightImage midSpace:4 sizeToFit:YES];
        CGFloat width = modifyBtn.titleLabel.width + 30 + 4;
        [modifyBtn addTarget:self action:@selector(modifyAction) forControlEvents:UIControlEventTouchUpInside];
        [self.userInfoView addSubview:modifyBtn];
        self.modifyBtn = modifyBtn;
        
        [self.meLab mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(self).offset(kStatusBarHeight + 17);
            make.left.equalTo(self).offset(15);
        }];
        [self.portraitIV mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(self.meLab.mas_bottom).offset(30);
            make.left.equalTo(self).offset(23);
            make.width.height.equalTo(@60);
        }];
        [self.modifyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
            make.right.equalTo(self).offset(-23);
            make.centerY.equalTo(self.portraitIV);
            make.width.equalTo(@(width));
        }];
        
        // 更新布局
        // [self.scoreTaskEvaluateView layoutIfNeeded];
        [self layoutIfNeeded];
        
        [self updateUserView];
        
        // 监听用户数据更新通知
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateUserView) name:HasUpdateUserDataNoti object:nil];
        // 监听用户开启AI睡眠教练
        // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(monitorAIStartNoti) name:NeedUpdateStartAI object:nil];
    }
    return self;
}

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self name:HasUpdateUserDataNoti object:nil];
    // [[NSNotificationCenter defaultCenter] removeObserver:self name:NeedUpdateStartAI object:nil];
}

#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;
//}
//
//- (UIView *)reportReviewsView {
//    if (!_reportReviewsView) {
//        _reportReviewsView = [UIView new];
//        _reportReviewsView.dk_backgroundColorPicker = DKColorPickerWithColors(DSWhite, ColorFromHex(0x2A314B), DSWhite);
//        [_reportReviewsView cornerRadius:12.0];
//        [self.scoreTaskEvaluateView addSubview:_reportReviewsView];
//
//        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);
//        }];
//        [reviewBtn mas_makeConstraints:^(MASConstraintMaker *make) {
//            make.top.right.bottom.equalTo(_reportReviewsView);
//            make.size.equalTo(reportBtn);
//        }];
//        [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;
//}

#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