Files
yinmeng-ios/xplan-ios/Main/Mine/View/SubViews/XPMineHeadView.m

229 lines
6.7 KiB
Mathematica
Raw Normal View History

2021-09-16 19:30:22 +08:00
//
// XPMineHeadView.m
// xplan-ios
//
// Created by on 2021/9/16.
//
#import "XPMineHeadView.h"
///Third
#import <Masonry/Masonry.h>
#import <YYText/YYLabel.h>
///Tool
#import "ThemeColor.h"
#import "XPMacro.h"
///View
#import "XPMineAccountView.h"
#import "NetImageView.h"
2021-09-16 19:30:22 +08:00
///Model
#import "UserInfoModel.h"
@interface XPMineHeadView ()
///
@property (nonatomic,strong) NetImageView * avatarImageView;
2021-09-16 19:30:22 +08:00
///name
@property (nonatomic,strong) UIStackView *nameStackView;
///
@property (nonatomic,strong) UILabel *nameLabel;
///
@property (nonatomic,strong) UIButton *editButton;
///id
@property (nonatomic,strong) UIStackView *idStackView;
///id
@property (nonatomic,strong) UILabel *idLabel;
///
@property (nonatomic,strong) UIImageView *sexImageView;
///
@property (nonatomic,strong) YYLabel *levelLabel;
///
@property (nonatomic,strong) XPMineAccountView *accountView;
@end
@implementation XPMineHeadView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Response
- (void)tapAvatarImageView {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadView:didClickAvatar:)]) {
[self.delegate xPMineHeadView:self didClickAvatar:self.userInfo];
}
}
2021-09-17 19:41:09 +08:00
- (void)tapAccountView {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadView:didClickAccount:)]) {
[self.delegate xPMineHeadView:self didClickAccount:self.userInfo];
}
}
- (void)tapRecommendView {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineHeadView:didClickInviteFriend:)]) {
[self.delegate xPMineHeadView:self didClickInviteFriend:self.userInfo];
}
}
2021-09-16 19:30:22 +08:00
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self addSubview:self.avatarImageView];
[self addSubview:self.nameStackView];
[self addSubview:self.idStackView];
[self addSubview:self.levelLabel];
[self addSubview:self.accountView];
[self.nameStackView addArrangedSubview:self.nameLabel];
[self.nameStackView addArrangedSubview:self.editButton];
[self.idStackView addArrangedSubview:self.idLabel];
[self.idStackView addArrangedSubview:self.sexImageView];
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAvatarImageView)];
[self.avatarImageView addGestureRecognizer:tap];
2021-09-17 19:41:09 +08:00
UITapGestureRecognizer * accountTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAccountView)];
[self.accountView.accountView addGestureRecognizer:accountTap];
UITapGestureRecognizer * recommendTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapRecommendView)];
[self.accountView.recommendView addGestureRecognizer:recommendTap];
2021-09-16 19:30:22 +08:00
}
- (void)initSubViewConstraints {
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(50, 50));
make.left.mas_equalTo(self).offset(20);
make.top.mas_equalTo(self).offset(50 + kSafeAreaTopHeight);
}];
[self.nameStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(17);
make.top.mas_equalTo(self.avatarImageView).offset(8);
}];
[self.idStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nameStackView);
make.top.mas_equalTo(self.nameStackView.mas_bottom).offset(6);
}];
[self.levelLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nameStackView);
make.top.mas_equalTo(self.idStackView.mas_bottom).offset(4);
}];
[self.accountView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self);
make.height.mas_equalTo(60);
make.top.mas_equalTo(self.avatarImageView.mas_bottom).offset(30);
2021-09-16 19:30:22 +08:00
}];
}
#pragma mark - Getters And Setters
- (void)setUserInfo:(UserInfoModel *)userInfo {
_userInfo = userInfo;
if (_userInfo) {
self.idLabel.text = [NSString stringWithFormat:@"音游号:%ld", (long)_userInfo.erbanNo];
self.nameLabel.text = _userInfo.nick.length > 0 ? _userInfo.nick : @"";
self.avatarImageView.imageUrl = userInfo.avatar;
2021-09-16 19:30:22 +08:00
NSString * sexName;
if (userInfo.gender == GenderType_Male) {
2021-09-17 19:41:09 +08:00
sexName = @"common_male";
2021-09-16 19:30:22 +08:00
} else {
2021-09-17 19:41:09 +08:00
sexName = @"common_female";
2021-09-16 19:30:22 +08:00
}
self.sexImageView.image = [UIImage imageNamed:sexName];
}
}
- (NetImageView *)avatarImageView {
2021-09-16 19:30:22 +08:00
if (!_avatarImageView) {
_avatarImageView = [[NetImageView alloc] init];
2021-09-16 19:30:22 +08:00
_avatarImageView.userInteractionEnabled = YES;
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 25;
_avatarImageView.image = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView.imageType = ImageTypeUserIcon;
2021-09-16 19:30:22 +08:00
}
return _avatarImageView;
}
- (UIStackView *)nameStackView {
if (!_nameStackView) {
_nameStackView = [[UIStackView alloc] init];
_nameStackView.axis = UILayoutConstraintAxisHorizontal;
_nameStackView.distribution = UIStackViewDistributionFill;
_nameStackView.alignment = UIStackViewAlignmentCenter;
_nameStackView.spacing = 5;
}
return _nameStackView;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [[UILabel alloc] init];
_nameLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18];
_nameLabel.textColor = [ThemeColor mainTextColor];
}
return _nameLabel;
}
- (UIButton *)editButton {
if (!_editButton) {
_editButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_editButton setImage:[UIImage imageNamed:@"mine_head_name_edit"] forState:UIControlStateNormal];
[_editButton setImage:[UIImage imageNamed:@"mine_head_name_edit"] forState:UIControlStateSelected];
}
return _editButton;
}
- (UIStackView *)idStackView {
if (!_idStackView) {
_idStackView = [[UIStackView alloc] init];
_idStackView.axis = UILayoutConstraintAxisHorizontal;
_idStackView.distribution = UIStackViewDistributionFill;
_idStackView.alignment = UIStackViewAlignmentCenter;
_idStackView.spacing = 5;
}
return _idStackView;
}
- (UILabel *)idLabel {
if (!_idLabel) {
_idLabel = [[UILabel alloc] init];
_idLabel.font = [UIFont systemFontOfSize:13];
_idLabel.textColor = [ThemeColor secondTextColor];
}
return _idLabel;
}
- (UIImageView *)sexImageView {
if (!_sexImageView) {
_sexImageView = [[UIImageView alloc] init];
_sexImageView.userInteractionEnabled = YES;
}
return _sexImageView;
}
- (YYLabel *)levelLabel {
if (!_levelLabel) {
_levelLabel = [[YYLabel alloc] init];
_levelLabel.preferredMaxLayoutWidth = KScreenWidth - 88;
}
return _levelLabel;
}
- (XPMineAccountView *)accountView {
if (!_accountView) {
_accountView = [[XPMineAccountView alloc] init];
}
return _accountView;
}
@end