You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

389 lines
14 KiB

//
// TFMineHeaderView.m
// TFReader
//
// Created by 谢腾飞 on 2020/12/11.
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
//
#import "TFMineHeaderView.h"
#import "TFUserCenterModel.h"
#import "AppDelegate.h"
#define MenuAvatar_H 70
#define MenuNumLabel_H 30
#define MenuLabel_H 20
@interface TFMineHeaderView ()
@property (nonatomic ,strong) UIButton *userAvatar;
@property (nonatomic ,strong) UILabel *userNickname;
@property (nonatomic ,strong) UIImageView *vipView;
@property (nonatomic ,strong) UILabel *userIDLabel;
// 书币
@property (nonatomic ,strong) UILabel *goldNumLabel;
@property (nonatomic ,strong) UILabel *goldLabel;
// 书券
#if TF_Task_Mode
@property (nonatomic ,strong) UILabel *taskNumLabel;
@property (nonatomic ,strong) UILabel *taskLabel;
#endif
// 月票
@property (nonatomic ,strong) UILabel *voucherNumLabel;
@property (nonatomic ,strong) UILabel *voucherLabel;
@property (nonatomic ,strong) NSString *avatarString;
@end
@implementation TFMineHeaderView
- (instancetype)init
{
if (self = [super init]) {
self.backgroundColor = kWhiteColor;
#if TF_Recharge_Mode
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, 3 * kMargin + PUB_NAVBAR_OFFSET + MenuAvatar_H + MenuNumLabel_H + MenuLabel_H + kHalfMargin);
#else
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, 3 * kMargin + PUB_NAVBAR_OFFSET + MenuAvatar_H);
#endif
[self createSubViews];
}
return self;
}
- (void)createSubViews
{
self.userAvatar = [UIButton buttonWithType:UIButtonTypeCustom];
[self.userAvatar.layer setCornerRadius:35];
[self.userAvatar setClipsToBounds:YES];
[self.userAvatar setBackgroundImage:HoldUserAvatar forState:UIControlStateNormal];
[self.userAvatar addTarget:self action:@selector(avatarSelected) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:self.userAvatar];
[self.userAvatar mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.mas_left).with.offset(kMargin);
make.top.mas_equalTo(2 * kMargin + PUB_NAVBAR_OFFSET);
make.width.mas_equalTo(MenuAvatar_H);
make.height.mas_equalTo(MenuAvatar_H);
}];
self.userNickname = [[UILabel alloc] init];
self.userNickname.font = kBoldFont20;
self.userNickname.backgroundColor = kWhiteColor;
self.userNickname.textColor = kBlackColor;
self.userNickname.textAlignment = NSTextAlignmentLeft;
self.userNickname.userInteractionEnabled = YES;
if (TFUserInfoManager.isLogin) {
self.userNickname.text = [TFUserInfoManager shareInstance].nickname;
} else {
self.userNickname.text = TFLocalizedString(@"点我登录");
self.userNickname.textColor = kBlackColor;
}
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(avatarSelected)];
[self addSubview:self.userNickname];
[self.userNickname addGestureRecognizer:tap];
[self.userNickname mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.userAvatar.mas_right).with.offset(kHalfMargin);
make.width.mas_equalTo(SCREEN_WIDTH - 100);
make.top.mas_equalTo(self.userAvatar.mas_top);
make.height.mas_equalTo(MenuAvatar_H);
}];
self.userIDLabel = [[UILabel alloc] init];
self.userIDLabel.backgroundColor = kWhiteColor;
self.userIDLabel.textColor = kGrayTextColor;
self.userIDLabel.textAlignment = NSTextAlignmentLeft;
self.userIDLabel.font = kFont12;
[self addSubview:self.userIDLabel];
[self.userIDLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.userAvatar.mas_right).with.offset(kHalfMargin);
make.top.mas_equalTo(self.userAvatar.mas_centerY).with.offset(kQuarterMargin + 2);
make.width.mas_equalTo(CGFLOAT_MIN);
make.height.mas_equalTo(15);
}];
#if TF_Super_Member_Mode
self.vipView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"public_vip_normal"]];
self.vipView.hidden = YES;
[self addSubview:self.vipView];
[self.vipView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.userIDLabel.mas_right).with.offset(kQuarterMargin);
make.centerY.mas_equalTo(self.userIDLabel.mas_centerY);
make.height.mas_equalTo(10);
make.width.mas_equalTo(kGeometricWidth(10, 138, 48));
}];
#endif
#if TF_Recharge_Mode
self.goldNumLabel = [[UILabel alloc] init];
self.goldNumLabel.text = @"--";
self.goldNumLabel.textColor = kMainColor;
self.goldNumLabel.textAlignment = NSTextAlignmentCenter;
self.goldNumLabel.backgroundColor = kWhiteColor;
self.goldNumLabel.font = kMainFont;
self.goldNumLabel.userInteractionEnabled = YES;
[self addSubview:self.goldNumLabel];
[self.goldNumLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(goldSelected)]];
{
UIView *line = [[UIView alloc] init];
line.backgroundColor = kGrayLineColor;
[self addSubview:line];
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.goldNumLabel.mas_right);
make.top.mas_equalTo(self.goldNumLabel.mas_top).with.offset(5);
make.width.mas_equalTo(kCellLineHeight);
make.height.mas_equalTo(40);
}];
}
#if TF_Task_Mode
self.taskNumLabel = [[UILabel alloc] init];
self.taskNumLabel.text = @"--";
self.taskNumLabel.textColor = kMainColor;
self.taskNumLabel.textAlignment = NSTextAlignmentCenter;
self.taskNumLabel.backgroundColor = kWhiteColor;
self.taskNumLabel.font = kMainFont;
self.taskNumLabel.userInteractionEnabled = YES;
[self addSubview:self.taskNumLabel];
[self.taskNumLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(taskSelected)]];
{
UIView *line = [[UIView alloc] init];
line.backgroundColor = kGrayLineColor;
[self addSubview:line];
[line mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.taskNumLabel.mas_right);
make.top.mas_equalTo(self.taskNumLabel.mas_top).with.offset(5);
make.width.mas_equalTo(kCellLineHeight);
make.height.mas_equalTo(40);
}];
}
#endif
self.voucherNumLabel = [[UILabel alloc] init];
self.voucherNumLabel.text = @"--";
self.voucherNumLabel.textColor = kMainColor;
self.voucherNumLabel.textAlignment = NSTextAlignmentCenter;
self.voucherNumLabel.backgroundColor = kWhiteColor;
self.voucherNumLabel.font = kMainFont;
self.voucherNumLabel.userInteractionEnabled = YES;
[self addSubview:self.voucherNumLabel];
[self.voucherNumLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(voucherSelected)]];
AppDelegate *delegate = (AppDelegate *)kRCodeSync([UIApplication sharedApplication].delegate);
NSMutableArray *labelNumConstraints = [NSMutableArray arrayWithObjects:self.goldNumLabel,
#if TF_Task_Mode
self.taskNumLabel,
#endif
nil];
if (delegate.checkSettingModel.system_setting.monthly_ticket_switch == 1) {
[labelNumConstraints addObject:self.voucherNumLabel];
}
[labelNumConstraints mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:0 leadSpacing:0 tailSpacing:0];
[labelNumConstraints mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.userAvatar.mas_bottom).with.offset(kMargin);
make.height.mas_equalTo(MenuNumLabel_H);
}];
self.goldLabel = [[UILabel alloc] init];
self.goldLabel.text = [NSString stringWithFormat:@"%@", TFSystemInfoManager.masterUnit];
self.goldLabel.textColor = kGrayTextColor;
self.goldLabel.textAlignment = NSTextAlignmentCenter;
self.goldLabel.backgroundColor = kWhiteColor;
self.goldLabel.font = kFont12;
self.goldLabel.userInteractionEnabled = YES;
[self addSubview:self.goldLabel];
[self.goldLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(goldSelected)]];
#if TF_Task_Mode
self.taskLabel = [[UILabel alloc] init];
self.taskLabel.text = TFLocalizedString(@"书券");
self.taskLabel.textColor = kGrayTextColor;
self.taskLabel.textAlignment = NSTextAlignmentCenter;
self.taskLabel.backgroundColor = kWhiteColor;
self.taskLabel.font = kFont12;
self.taskLabel.userInteractionEnabled = YES;
[self addSubview:self.taskLabel];
[self.taskLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(taskSelected)]];
#endif
self.voucherLabel = [[UILabel alloc] init];
self.voucherLabel.text = TFLocalizedString(@"月票");
self.voucherLabel.textColor = kGrayTextColor;
self.voucherLabel.textAlignment = NSTextAlignmentCenter;
self.voucherLabel.backgroundColor = kWhiteColor;
self.voucherLabel.font = kFont12;
self.voucherLabel.userInteractionEnabled = YES;
[self addSubview:self.voucherLabel];
[self.voucherLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(voucherSelected)]];
NSMutableArray *labelConstraints = [NSMutableArray arrayWithObjects:self.goldLabel,
#if TF_Task_Mode
self.taskLabel,
#endif
nil];
if (delegate.checkSettingModel.system_setting.monthly_ticket_switch == 1) {
[labelConstraints addObject:self.voucherLabel];
}
[labelConstraints mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:0 leadSpacing:0 tailSpacing:0];
[labelConstraints mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.goldNumLabel.mas_bottom);
make.height.mas_equalTo(MenuLabel_H);
}];
#endif
}
#pragma mark - 点击事件
- (void)avatarSelected
{
if (self.portraitHandleBlock) {
self.portraitHandleBlock();
}
}
- (void)goldSelected
{
if (self.goldSelectedBlock) {
self.goldSelectedBlock();
}
}
- (void)taskSelected
{
if (self.taskSelectedBlock) {
self.taskSelectedBlock();
}
}
- (void)voucherSelected
{
if (self.voucherSelectedBlock) {
self.voucherSelectedBlock();
}
}
#pragma mark - 设置变量
- (void)setAvatarImage:(UIImage *)avatarImage
{
_avatarImage = avatarImage;
[self.userAvatar setBackgroundImage:avatarImage forState:UIControlStateNormal];
}
- (void)setNickName:(NSString *)nickName
{
_nickName = nickName;
self.userNickname.text = nickName;
}
- (void)setUserModel:(TFUserCenterModel *)userModel
{
_userModel = userModel;
#if TF_Super_Member_Mode
// VIP
if (userModel.isVip) {
self.vipView.image = [UIImage imageNamed:@"public_vip_select"];
} else {
self.vipView.image = [UIImage imageNamed:@"public_vip_normal"];
}
#endif
// 昵称
if (userModel.nickname.length > 0) {
self.userNickname.text = userModel.nickname?:@"";
self.userNickname.textColor = kBlackColor;
self.userIDLabel.hidden = NO;
self.vipView.hidden = NO;
[self.userNickname mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(40);
}];
} else {
self.userNickname.text = TFLocalizedString(@"点我登录");
self.userNickname.textColor = kBlackColor;
self.userIDLabel.hidden = YES;
self.vipView.hidden = YES;
[self.userNickname mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(MenuAvatar_H);
}];
}
// 用户id
if (!userModel.uid) {
self.userIDLabel.hidden = YES;
self.userIDLabel.text = @"";
} else {
self.userIDLabel.hidden = NO;
self.userIDLabel.text = [NSString stringWithFormat:@"ID:%@", [TFUtilsHelper formatStringWithInteger:userModel.uid]];
}
[self.userIDLabel mas_updateConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo([TFViewHelper getDynamicWidthWithLabel:self.userIDLabel]);
}];
// 主货币单位
if (userModel.masterUnit.length > 0) {
self.goldLabel.text = [NSString stringWithFormat:@"%@", userModel.masterUnit];
} else {
self.goldLabel.text = [NSString stringWithFormat:@"%@", TFSystemInfoManager.masterUnit];
}
#if TF_Task_Mode
// 子货币单位
if (userModel.subUnit.length > 0) {
self.taskLabel.text = [NSString stringWithFormat:@"%@", userModel.subUnit];
} else {
self.taskLabel.text = [NSString stringWithFormat:@"%@", TFSystemInfoManager.subUnit];
}
#endif
if (userModel.masterRemain <= 0 && !TFUserInfoManager.isLogin) {
self.goldNumLabel.text = @"--";
} else {
self.goldNumLabel.text = [TFUtilsHelper formatStringWithInteger:userModel.masterRemain];
}
// 月票数量
if (userModel.ticketRemain <= 0 && !TFUserInfoManager.isLogin) {
self.voucherNumLabel.text = @"--";
} else {
self.voucherNumLabel.text = [TFUtilsHelper formatStringWithInteger:userModel.ticketRemain];
}
#if TF_Task_Mode
// 子货币数量
if (userModel.subRemain <= 0 && !TFUserInfoManager.isLogin) {
self.taskNumLabel.text = @"--";
} else {
self.taskNumLabel.text = [TFUtilsHelper formatStringWithInteger:userModel.subRemain];
}
#endif
if (![self.avatarString isEqualToString:userModel.avatar]) {
self.avatarString = userModel.avatar;
[self.userAvatar setBackgroundImageWithURL:[NSURL URLWithString:userModel.avatar?:@""] forState:UIControlStateNormal placeholder:HoldUserAvatar];
}
}
@end