// // QXMainHeaderView.m // QXLive // // Created by 启星 on 2025/5/9. // #import "QXMainHeaderView.h" #import "QXSeatHeaderView.h" #import "CKShimmerLabel.h" @interface QXMainHeaderView() @property (nonatomic, strong) QXSeatHeaderView *userHeaderView; @property (nonatomic, strong) UIImageView *sexImageView; //@property (nonatomic, strong) UILabel *nameLabel; @property (nonatomic, strong) CKShimmerLabel *nameLabel; @property (nonatomic, strong) UILabel *idLabel; @property (nonatomic, strong) UIButton *idCopyBtn; @property (nonatomic, strong) UIView *userTagView; @property (nonatomic, strong) UIView *userHomeView; @property (nonatomic, strong) UILabel *userHomeTitleLabel; @property (nonatomic, strong) UIImageView *userHomeImageView; @property (nonatomic, strong) UIButton *userHomeBtn; @property (nonatomic, strong) UIImageView *useCodeImageView; //@property (nonatomic, strong) UIButton *leftBtn; //@property (nonatomic, strong) UIButton *rightBtn; @property (nonatomic, strong) UIButton *roomBtn; /// 标签是否已经创建过了 @property (nonatomic, strong) NSMutableArray *iconArray; @end @implementation QXMainHeaderView - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self initSubviews]; } return self; } -(void)initSubviews{ MJWeakSelf self.userHeaderView = [[QXSeatHeaderView alloc] initWithFrame:CGRectMake(16, 40, 68, 68)]; [self.userHeaderView addTapBlock:^(id _Nonnull obj) { if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(didClickOptionType:)]) { [weakSelf.delegate didClickOptionType:QXMainHeaderOptionTypeGotoHome]; } }]; [self addSubview:self.userHeaderView]; self.sexImageView = [[UIImageView alloc] init]; [self addSubview:self.sexImageView]; [self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.right.bottom.equalTo(self.userHeaderView); make.height.width.mas_equalTo(16); }]; // self.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.userHeaderView.right+6, self.userHeaderView.top, self.width-self.userHeaderView.right-16-6, 23)]; self.nameLabel = [[CKShimmerLabel alloc] initWithFrame:CGRectMake(self.userHeaderView.right+6, self.userHeaderView.top, self.width-self.userHeaderView.right-16-6, 23)]; self.nameLabel.shimmerWidth = 20; self.nameLabel.shimmerRadius = 20; self.nameLabel.shimmerColor = [UIColor yellowColor]; self.nameLabel.repeat = YES; self.nameLabel.textColor = QXConfig.textColor; self.nameLabel.font = [UIFont boldSystemFontOfSize:18]; // [self.nameLabel startShimmer]; [self addSubview:self.nameLabel]; self.idLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.userHeaderView.right+6, self.nameLabel.bottom+5, 80, 17)]; self.idLabel.textColor = RGB16(0x666666); self.idLabel.font = [UIFont systemFontOfSize:12]; self.idLabel.text = @"ID:"; [self addSubview:self.idLabel]; self.useCodeImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mine_usercode_isLiang"]]; self.useCodeImageView.frame = CGRectMake(0, 0, 32, 13); self.useCodeImageView.hidden = YES; [self addSubview:self.useCodeImageView]; self.idCopyBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.idLabel.right, 0, 25, 25)]; self.idCopyBtn.centerY = self.idLabel.centerY; [self.idCopyBtn setImage:[UIImage imageNamed:@"id_copy"] forState:(UIControlStateNormal)]; [self.idCopyBtn addTarget:self action:@selector(idCopyClick) forControlEvents:(UIControlEventTouchUpInside)]; [self addSubview:self.idCopyBtn]; self.userHomeView = [[UIView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-60-16, 0, 60, 23)]; self.userHomeView.layer.cornerRadius = self.userHomeView.height/2.0; self.userHomeView.layer.shadowColor = [UIColor grayColor].CGColor; self.userHomeView.layer.shadowOpacity = 0.3; self.userHomeView.layer.shadowOffset = CGSizeMake(0, 2); self.userHomeView.layer.shadowRadius = 2; self.userHomeView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.userHomeView.bounds cornerRadius:self.userHomeView.layer.cornerRadius].CGPath; self.userHomeView.layer.masksToBounds = NO; self.userHomeView.centerY = self.userHeaderView.centerY; self.userHomeView.backgroundColor = [UIColor whiteColor]; [self addSubview:self.userHomeView]; self.userHomeImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrowRight"]]; self.userHomeImageView.frame = CGRectMake(self.userHomeView.width-10-16, (23-16)/2.0, 16, 16); [self.userHomeView addSubview:self.userHomeImageView]; self.userHomeTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 20, 20)]; self.userHomeTitleLabel.text = QXText(@"编辑"); self.userHomeTitleLabel.font = [UIFont systemFontOfSize:12]; self.userHomeTitleLabel.textColor = [UIColor colorWithHexString:@"#333333"]; [self.userHomeTitleLabel sizeToFit]; self.userHomeTitleLabel.x = 10; self.userHomeTitleLabel.y =( self.userHomeView.height - self.userHomeTitleLabel.height)/2.0; [self.userHomeView addSubview:self.userHomeTitleLabel]; self.userHomeBtn = [[UIButton alloc] initWithFrame:self.userHomeView.bounds]; [self.userHomeBtn addTarget:self action:@selector(gotoUserHomePageClick) forControlEvents:(UIControlEventTouchUpInside)]; [self.userHomeView addSubview:self.userHomeBtn]; // NSArray* nameArr = @[ // QXText(@"关注"), QXText(@"粉丝"), QXText(@"好友"), QXText(@"访客") // ]; NSArray* nameArr = @[ QXText(@"关注"), QXText(@"粉丝"),QXText(@"访客") ]; CGFloat width = (SCREEN_WIDTH-32)/4; for (int i = 0; i < nameArr.count; i ++) { UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(16+width*i, self.userHeaderView.bottom+19, width, 22)]; titleLabel.textColor = RGB16(0x666666); titleLabel.font = [UIFont systemFontOfSize:12]; titleLabel.textAlignment = NSTextAlignmentCenter; titleLabel.text = nameArr[i]; [titleLabel sizeToFit]; titleLabel.x = 16+width*i; titleLabel.y = self.userHeaderView.bottom+16; titleLabel.height = 22; [self addSubview:titleLabel]; UILabel *countLabel = [[UILabel alloc] initWithFrame:CGRectMake(titleLabel.right+5, titleLabel.top, width-10-titleLabel.width, 22)]; countLabel.textAlignment = NSTextAlignmentCenter; countLabel.textColor = QXConfig.textColor; countLabel.tag = 10 + i; countLabel.font = [UIFont boldSystemFontOfSize:16]; countLabel.text = @"0"; countLabel.centerY = titleLabel.centerY; [self addSubview:countLabel]; UIControl *c = [[UIControl alloc] initWithFrame:CGRectMake(titleLabel.left, titleLabel.top-10, width, titleLabel.height+20)]; c.tag = 20 + i; [c addTarget:self action:@selector(viewClick:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:c]; } // self.leftBtn = [[UIButton alloc] initWithFrame:CGRectMake(16, self.userHeaderView.bottom+54, width*2-7.5, 67)]; // [self.leftBtn setBackgroundImage:[UIImage imageNamed:@"start_live"] forState:(UIControlStateNormal)]; // [self.leftBtn addTarget:self action:@selector(leftAction) forControlEvents:(UIControlEventTouchUpInside)]; // [self addSubview:self.leftBtn]; // // self.rightBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.leftBtn.right+7.5, self.userHeaderView.bottom+54, self.leftBtn.width, 67)]; // [self.rightBtn setBackgroundImage:[UIImage imageNamed:@"become_anchor"] forState:(UIControlStateNormal)]; // [self.rightBtn addTarget:self action:@selector(rightAction) forControlEvents:(UIControlEventTouchUpInside)]; // [self addSubview:self.rightBtn]; self.roomBtn = [[UIButton alloc] initWithFrame:CGRectMake(16, self.userHeaderView.bottom+54, self.width-32, ScaleWidth(67))]; [self.roomBtn setBackgroundImage:[UIImage imageNamed:@"mine_header_room"] forState:(UIControlStateNormal)]; [self.roomBtn addTarget:self action:@selector(roomAction) forControlEvents:(UIControlEventTouchUpInside)]; [self addSubview:self.roomBtn]; } -(void)viewClick:(UIControl*)sender{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { [self.delegate didClickOptionType:sender.tag]; } } -(void)roomAction{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { [self.delegate didClickOptionType:QXMainHeaderOptionTypeRoom]; } } -(void)leftAction{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { [self.delegate didClickOptionType:QXMainHeaderOptionTypeStartLive]; } } -(void)rightAction{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { [self.delegate didClickOptionType:QXMainHeaderOptionTypeRealName]; } } -(void)gotoUserHomePageClick{ if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOptionType:)]) { [self.delegate didClickOptionType:QXMainHeaderOptionTypeGotoEdit]; } } -(void)setUserModel:(QXUserModel *)userModel{ _userModel = userModel; [self.userHeaderView setHeadIcon:userModel.avatar dress:userModel.dress]; self.nameLabel.text = userModel.nickname; self.idLabel.text = [NSString stringWithFormat:@"ID:%@",userModel.user_code]; UILabel *followLabel = [self viewWithTag:10]; UILabel *fansLabel = [self viewWithTag:11]; UILabel *lookLabel = [self viewWithTag:12]; followLabel.text = userModel.follow_num; fansLabel.text = userModel.fans_num; lookLabel.text = userModel.look_me_num; for (UIView*v in self.iconArray) { [v removeFromSuperview]; } for (int i = 0;i