diff --git a/xplan-ios/Main/Mine/View/Cell/MineInfo/XPMineDataSkillCardTableViewCell.m b/xplan-ios/Main/Mine/View/Cell/MineInfo/XPMineDataSkillCardTableViewCell.m index 3fafdf2c..62538a5c 100644 --- a/xplan-ios/Main/Mine/View/Cell/MineInfo/XPMineDataSkillCardTableViewCell.m +++ b/xplan-ios/Main/Mine/View/Cell/MineInfo/XPMineDataSkillCardTableViewCell.m @@ -55,9 +55,9 @@ - (void)initSubViewConstraints { [self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.mas_equalTo(self.contentView).inset(15); - make.top.mas_equalTo(self.contentView); - make.bottom.mas_equalTo(self.contentView).offset(-15); + make.left.right.mas_equalTo(self.contentView).inset(0); + make.top.mas_equalTo(self.contentView).offset(12); + make.bottom.mas_equalTo(self.contentView).offset(-12); }]; [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { @@ -134,12 +134,7 @@ if (!_backImageView) { _backImageView = [[UIImageView alloc] init]; _backImageView.userInteractionEnabled = YES; - _backImageView.layer.cornerRadius = 10; _backImageView.backgroundColor =[ThemeColor appCellBackgroundColor]; - _backImageView.layer.shadowColor = UIColorFromRGB(0xE4E4E4).CGColor; - _backImageView.layer.shadowOpacity = 1; - _backImageView.layer.shadowOffset = CGSizeMake(0, 2); - _backImageView.layer.shadowRadius = 8; } return _backImageView; } diff --git a/xplan-ios/Main/Mine/View/MineInfo/XPMineUserDataViewController.m b/xplan-ios/Main/Mine/View/MineInfo/XPMineUserDataViewController.m index c4a96fd4..4b3e3b81 100644 --- a/xplan-ios/Main/Mine/View/MineInfo/XPMineUserDataViewController.m +++ b/xplan-ios/Main/Mine/View/MineInfo/XPMineUserDataViewController.m @@ -92,7 +92,7 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0) { - return 115; + return 133; } else if(indexPath.section == 1) { CGFloat itemHeigh = 40 + 15; if (self.clanDetailInfo.clan.elderUid.length > 0) { diff --git a/xplan-ios/Main/Mine/View/MineInfo/XPMineUserInfoViewController.m b/xplan-ios/Main/Mine/View/MineInfo/XPMineUserInfoViewController.m index cd3e5eb7..fb2a4ed9 100644 --- a/xplan-ios/Main/Mine/View/MineInfo/XPMineUserInfoViewController.m +++ b/xplan-ios/Main/Mine/View/MineInfo/XPMineUserInfoViewController.m @@ -218,7 +218,7 @@ #pragma mark - JXCategoryViewDelegate - (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView { - return 440; + return 398; } - (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView { @@ -420,7 +420,7 @@ if (!_titleView) { _titleView = [[JXCategoryTitleView alloc] init]; _titleView.delegate = self; - _titleView.backgroundColor = [UIColor clearColor]; + _titleView.backgroundColor = [UIColor whiteColor]; _titleView.titleColor = [ThemeColor textThirdColor]; _titleView.titleSelectedColor = [ThemeColor mainTextColor]; _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:12]; diff --git a/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m b/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m index 3a96af6a..17ea38ac 100644 --- a/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m +++ b/xplan-ios/Main/Mine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m @@ -18,6 +18,8 @@ #import "UIImage+Utils.h" #import "NetImageView.h" #import "NSArray+Safe.h" +#import "XCHUDTool.h" +#import "StatisticsServiceHelper.h" ///Model #import "UserInfoModel.h" @@ -36,11 +38,11 @@ @property (nonatomic,strong) NSMutableArray *userPhtotArray; ///用户信息 @property (nonatomic,strong) UIView * userInfoView; -///用户信息的背景 -@property (nonatomic,strong) UIImageView *usershadowImageView; ///贵族等级icon @property (nonatomic,strong) NetImageView *nobleImageView; @property (nonatomic,strong) UIStackView *nickStackView; +///头像 +@property (nonatomic,strong) NetImageView *avatarImageView; ///名字 @property (nonatomic,strong) UILabel *nameLabel; ///sex @@ -53,16 +55,14 @@ @property (nonatomic,strong) UIImageView *beautifulImageViw; ///id @property (nonatomic,strong) UILabel *idLabel; -///空白的占位图 -@property (nonatomic,strong) UIView * spaceView; +///复制id +@property (nonatomic,strong) UIImageView *copysIdImageView; ///粉丝数 @property (nonatomic,strong) UILabel *fansNumLabel; ///魅力等级 等级 铭牌 @property (nonatomic,strong) UIStackView *tagStackView; ///魅力等级 @property (nonatomic,strong) NetImageView *charmImageView; -///贵族icon -@property (nonatomic, strong) NetImageView *nobleIconImageView; ///等级 @property (nonatomic,strong) NetImageView *experImageView; ///铭牌的容器 @@ -102,26 +102,25 @@ [self addSubview:self.coverImageView]; [self addSubview:self.reviewIcon]; [self addSubview:self.userInfoView]; + [self addSubview:self.pageButton]; - [self.userInfoView addSubview:self.usershadowImageView]; + [self.userInfoView addSubview:self.avatarImageView]; + [self.userInfoView addSubview:self.fansNumLabel]; [self.userInfoView addSubview:self.signBackView]; [self.userInfoView addSubview:self.lineView]; - - [self.usershadowImageView addSubview:self.nickStackView]; - [self.usershadowImageView addSubview:self.idStackView]; - [self.usershadowImageView addSubview:self.tagStackView]; - [self.usershadowImageView addSubview:self.pageButton]; - [self.usershadowImageView addSubview:self.nobleImageView]; + [self.userInfoView addSubview:self.nickStackView]; + [self.userInfoView addSubview:self.idStackView]; + [self.userInfoView addSubview:self.tagStackView]; + + [self.nickStackView addArrangedSubview:self.nobleImageView]; [self.nickStackView addArrangedSubview:self.nameLabel]; [self.nickStackView addArrangedSubview:self.sexImageView]; [self.nickStackView addArrangedSubview:self.onlineButton]; - + [self.idStackView addArrangedSubview:self.beautifulImageViw]; [self.idStackView addArrangedSubview:self.idLabel]; - [self.idStackView addArrangedSubview:self.spaceView]; - [self.idStackView addArrangedSubview:self.fansNumLabel]; - + [self.idStackView addArrangedSubview:self.copysIdImageView]; ///用户信息中的标签 [self.tagStackView addArrangedSubview:self.newUserImageView]; @@ -132,14 +131,14 @@ ///铭牌 [self.namePlateView addSubview:self.nameplateImageView]; [self.namePlateView addSubview:self.nameplateLabel]; - + [self.signBackView addSubview:self.signLabel]; } - (void)initSubViewConstraints { [self.cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.top.mas_equalTo(self); - make.height.mas_equalTo(375); + make.height.mas_equalTo(237); }]; [self.coverImageView mas_makeConstraints:^(MASConstraintMaker *make) { @@ -155,25 +154,22 @@ [self.userInfoView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.mas_equalTo(self); make.bottom.mas_equalTo(self); - make.height.mas_equalTo(210); - }]; - - [self.usershadowImageView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.top.mas_equalTo(self.userInfoView); - make.height.mas_equalTo(146); + make.height.mas_equalTo(195); }]; + [self.pageButton mas_makeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(-15); - make.width.mas_equalTo(35); - make.height.mas_equalTo(16); - make.bottom.mas_equalTo(self.signBackView.mas_top).offset(-13); + make.width.mas_equalTo(42); + make.height.mas_equalTo(22); + make.bottom.mas_equalTo(self.userInfoView.mas_top).offset(-8); }]; [self.signBackView mas_makeConstraints:^(MASConstraintMaker *make) { - make.height.mas_equalTo(79); - make.left.right.mas_equalTo(self.userInfoView); - make.top.mas_equalTo(self.usershadowImageView.mas_bottom).offset(-15); + make.height.mas_equalTo(54); + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.top.mas_equalTo(self.tagStackView.mas_bottom).offset(10); }]; [self.lineView mas_makeConstraints:^(MASConstraintMaker *make) { @@ -181,15 +177,23 @@ make.bottom.mas_equalTo(self.userInfoView); make.height.mas_equalTo(1); }]; + + [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(22); + make.centerY.mas_equalTo(self.userInfoView.mas_top); + make.width.height.mas_equalTo(72); + }]; + [self.fansNumLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.avatarImageView.mas_right).offset(12); + make.top.mas_equalTo(10); + }]; [self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.mas_equalTo(self.usershadowImageView).offset(15); - make.top.mas_equalTo(self.usershadowImageView).offset(50); make.width.height.mas_equalTo(20); }]; [self.nickStackView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.mas_equalTo(self.nobleImageView.mas_right).mas_offset(5); - make.centerY.mas_equalTo(self.nobleImageView); + make.left.mas_equalTo(18); + make.top.mas_equalTo(self.avatarImageView.mas_bottom).offset(10); }]; [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) { @@ -205,23 +209,21 @@ }]; [self.idStackView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.mas_equalTo(self.nobleImageView); + make.left.mas_equalTo(self.nickStackView); make.top.mas_equalTo(self.nickStackView.mas_bottom).offset(5); }]; [self.beautifulImageViw mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(15, 15)); }]; - - [self.spaceView mas_makeConstraints:^(MASConstraintMaker *make) { - make.width.mas_equalTo(22); - make.height.mas_equalTo(15); - }]; + + [self.copysIdImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(10, 10)); + }]; [self.tagStackView mas_makeConstraints:^(MASConstraintMaker *make) { -// make.left.mas_equalTo(self.usershadowImageView).offset(15); - make.left.mas_equalTo(self.nobleImageView); - make.top.mas_equalTo(self.beautifulImageViw.mas_bottom).offset(5); + make.left.mas_equalTo(self.nickStackView); + make.top.mas_equalTo(self.idStackView.mas_bottom).offset(5); make.height.mas_equalTo(25); }]; @@ -259,8 +261,9 @@ }]; [self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.mas_equalTo(self.signBackView).offset(10); - make.top.mas_equalTo(self.signBackView).offset(23); + make.left.mas_equalTo(10); + make.right.mas_equalTo(-10); + make.centerY.mas_equalTo(0); }]; } @@ -299,36 +302,45 @@ [self.delegate xPMineUserInfoHeaderView:self didClickGoToRoom:self.roomUid]; } } + +- (void)copysIdRecognizer { + [UIPasteboard generalPasteboard].string = [NSString stringWithFormat:@"%ld", self.userInfo.erbanNo]; + [XCHUDTool showSuccessWithMessage:@"复制成功"]; + [StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventID_mycenter_copyid_click]; +} + #pragma mark - Getters And Setters - (void)setUserInfo:(UserInfoModel *)userInfo { _userInfo = userInfo; if (_userInfo) { + self.avatarImageView.imageUrl = _userInfo.avatar; self.nameLabel.text = _userInfo.nick; self.idLabel.text = [NSString stringWithFormat:@"ID:%ld", (long)_userInfo.erbanNo]; + self.copysIdImageView.hidden = NO; self.signLabel.text = _userInfo.userDesc.length > 0 ? _userInfo.userDesc : @"我是个默认签名"; - self.fansNumLabel.text =[NSString stringWithFormat:@"%ld粉丝", _userInfo.fansNum]; + NSString *fansNum = [NSString stringWithFormat:@"%ld",_userInfo.fansNum]; + NSString *fansStr = [NSString stringWithFormat:@"粉丝 %@", fansNum]; + NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:fansStr]; + NSRange fansNumRange = NSMakeRange(attrStr.length - fansNum.length, fansNum.length); + [attrStr addAttribute:NSForegroundColorAttributeName value:[ThemeColor mainTextColor] range:fansNumRange]; + self.fansNumLabel.attributedText = attrStr; self.sexImageView.image = userInfo.gender == GenderType_Female ? [UIImage imageNamed:@"common_female"] : [UIImage imageNamed:@"common_male"]; self.officalImageView.hidden = userInfo.defUser != UserLevelType_Offical; self.beautifulImageViw.hidden = !userInfo.hasPrettyErbanNo; self.newUserImageView.hidden = !userInfo.newUser; - self.nobleImageView.imageUrl = userInfo.userVipInfoVO.vipIcon; - UIImage *nobleImage = self.nobleImageView.image; - if (nobleImage) { - CGFloat scale = nobleImage.size.width / nobleImage.size.height; - [self.nobleImageView mas_updateConstraints:^(MASConstraintMaker *make) { - make.size.mas_equalTo(CGSizeMake(20* scale, 20)); - }]; - [self.nickStackView mas_updateConstraints:^(MASConstraintMaker *make) { - make.left.mas_equalTo(self.nobleImageView.mas_right).mas_offset(5); - }]; - } else { - [self.nobleImageView mas_updateConstraints:^(MASConstraintMaker *make) { - make.size.mas_equalTo(CGSizeMake(0, 20)); - }]; - [self.nickStackView mas_updateConstraints:^(MASConstraintMaker *make) { - make.left.mas_equalTo(self.nobleImageView.mas_right); - }]; - } + + [self.nobleImageView loadImageWithUrl:userInfo.userVipInfoVO.vipIcon completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + if (image) { + CGFloat scale = image.size.width / image.size.height; + [self.nobleImageView mas_updateConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + self.nobleImageView.hidden = NO; + }else{ + self.nobleImageView.hidden = YES; + } + }]; + if (userInfo.userLevelVo.experUrl) { self.experImageView.imageUrl = userInfo.userLevelVo.experUrl; } @@ -394,24 +406,20 @@ - (UIView *)userInfoView { if (!_userInfoView) { _userInfoView = [[UIView alloc] init]; - _userInfoView.backgroundColor = [UIColor clearColor]; - _userInfoView.layer.masksToBounds = YES; - _userInfoView.layer.cornerRadius = 12; + _userInfoView.backgroundColor = [UIColor whiteColor]; +// _userInfoView.layer.masksToBounds = YES; + _userInfoView.layer.cornerRadius = 20; +// CAShapeLayer * layer = [CAShapeLayer layer]; +// layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 79) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; +// _signBackView.layer.mask = layer; } return _userInfoView; } -- (UIImageView *)usershadowImageView { - if (!_usershadowImageView) { - _usershadowImageView = [[UIImageView alloc] init]; - _usershadowImageView.userInteractionEnabled = YES; - } - return _usershadowImageView; -} - - (NetImageView *)nobleImageView { if (!_nobleImageView) { - _nobleImageView = [[NetImageView alloc] init]; + _nobleImageView = [[NetImageView alloc] init]; + _nobleImageView.hidden = YES; } return _nobleImageView; } @@ -430,8 +438,8 @@ - (UILabel *)nameLabel { if (!_nameLabel) { _nameLabel = [[UILabel alloc] init]; - _nameLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; - _nameLabel.textColor = [UIColor whiteColor]; + _nameLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _nameLabel.textColor = [ThemeColor mainTextColor]; } return _nameLabel; } @@ -451,6 +459,9 @@ _idStackView.distribution = UIStackViewDistributionFill; _idStackView.alignment = UIStackViewAlignmentCenter; _idStackView.spacing = 5; + + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copysIdRecognizer)]; + [_idStackView addGestureRecognizer:tap]; } return _idStackView; } @@ -467,25 +478,17 @@ - (UILabel *)fansNumLabel { if (!_fansNumLabel) { _fansNumLabel = [[UILabel alloc] init]; - _fansNumLabel.font = [UIFont systemFontOfSize:12]; - _fansNumLabel.textColor = [UIColor whiteColor]; + _fansNumLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + _fansNumLabel.textColor = [ThemeColor secondTextColor]; } return _fansNumLabel; } -- (UIView *)spaceView { - if (!_spaceView) { - _spaceView = [[UIView alloc] init]; - _spaceView.backgroundColor = [UIColor clearColor]; - } - return _spaceView; -} - - (UILabel *)idLabel { if (!_idLabel) { _idLabel = [[UILabel alloc] init]; - _idLabel.font = [UIFont systemFontOfSize:11]; - _idLabel.textColor = [UIColor whiteColor]; + _idLabel.font = [UIFont systemFontOfSize:12]; + _idLabel.textColor = [ThemeColor textThirdColor]; } return _idLabel; } @@ -519,8 +522,10 @@ if (!_pageButton) { _pageButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_pageButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; - _pageButton.titleLabel.font = [UIFont systemFontOfSize:10]; - [_pageButton setBackgroundImage:[UIImage imageNamed:@"mine_user_info_header_page_bg"] forState:UIControlStateNormal]; + _pageButton.titleLabel.font = [UIFont systemFontOfSize:12]; + _pageButton.backgroundColor = [UIColor.whiteColor colorWithAlphaComponent:0.2]; + _pageButton.layer.cornerRadius = 11; + _pageButton.clipsToBounds = YES; } return _pageButton; } @@ -571,16 +576,6 @@ return _charmImageView; } -- (NetImageView *)nobleIconImageView { - if (!_nobleIconImageView) { - NetImageConfig * config = [[NetImageConfig alloc] init]; - config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; - config.imageType = ImageTypeUserCardLevel; - _nobleIconImageView = [[NetImageView alloc] initWithConfig:config]; - _nobleIconImageView.contentMode = UIViewContentModeScaleAspectFit; - } - return _nobleIconImageView; -} - (UIView *)namePlateView { if (!_namePlateView) { @@ -637,9 +632,7 @@ if (!_signBackView) { _signBackView = [[UIView alloc] init]; _signBackView.backgroundColor = [ThemeColor appBackgroundColor]; - CAShapeLayer * layer = [CAShapeLayer layer]; - layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 79) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; - _signBackView.layer.mask = layer; + _signBackView.layer.cornerRadius = 4; } return _signBackView; } @@ -677,4 +670,29 @@ return _avatarPhoto; } +- (NetImageView *)avatarImageView { + if (!_avatarImageView) { + NetImageConfig * config = [[NetImageConfig alloc] init]; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + config.imageType = ImageTypeUserIcon; + _avatarImageView = [[NetImageView alloc] initWithConfig:config]; + _avatarImageView.layer.masksToBounds = YES; + _avatarImageView.layer.cornerRadius = 36; + _avatarImageView.layer.borderWidth = 1; + _avatarImageView.layer.borderColor = UIColor.whiteColor.CGColor; + _avatarImageView.contentMode = UIViewContentModeScaleAspectFill; + } + return _avatarImageView; +} + +- (UIImageView *)copysIdImageView { + if (!_copysIdImageView) { + _copysIdImageView = [[UIImageView alloc] init]; + _copysIdImageView.userInteractionEnabled = YES; + _copysIdImageView.image = [UIImage imageNamed:@"mine_user_id_copy"]; + _copysIdImageView.hidden = YES; + } + return _copysIdImageView; +} + @end