1276 lines
48 KiB
Objective-C
1276 lines
48 KiB
Objective-C
//
|
||
// XPMineHeaderView.m
|
||
// xplan-ios
|
||
//
|
||
// Created by 冯硕 on 2021/9/22.
|
||
//
|
||
|
||
#import "XPMineUserInfoHeaderView.h"
|
||
///Third
|
||
#import <Masonry/Masonry.h>
|
||
#import <SDCycleScrollView/SDCycleScrollView.h>
|
||
#import "SDPhotoBrowser.h"
|
||
#import <ReactiveObjC/ReactiveObjC.h>
|
||
#import <SVGA.h>
|
||
#import <YYImage/YYAnimatedImageView.h>
|
||
///Tool
|
||
#import "UIImage+ImageEffects.h"
|
||
#import "UIImage+Utils.h"
|
||
#import "NetImageView.h"
|
||
#import "XPSkillCardPlayerManager.h"
|
||
#import "XPRoomMiniManager.h"
|
||
#import "SpriteSheetImageManager.h"
|
||
///view
|
||
#import "XPMineUserInfoHeaderTagView.h"
|
||
///Model
|
||
#import "UserInfoModel.h"
|
||
|
||
|
||
#define StackSpring(axis) \
|
||
^{\
|
||
UIView *view = UIView.new; \
|
||
[view mas_makeConstraints:^(MASConstraintMaker *make) {\
|
||
if (axis == UILayoutConstraintAxisHorizontal) {\
|
||
make.width.mas_equalTo(1000).priorityLow();\
|
||
} else {\
|
||
make.height.mas_equalTo(1000).priorityLow();\
|
||
}\
|
||
}];\
|
||
return view;\
|
||
}()
|
||
|
||
@interface XPMineUserInfoHeaderView ()<SDCycleScrollViewDelegate, SDPhotoBrowserDelegate,XPMineUserInfoHeaderTagViewDelegate>
|
||
///轮播图
|
||
@property (nonatomic,strong) SDCycleScrollView *pi_cycleScrollView;
|
||
|
||
///显示当前的页数
|
||
@property (nonatomic,strong) UIButton *pageButton;
|
||
///审核中图标
|
||
@property (nonatomic,strong) UIImageView *reviewIcon;
|
||
///图片数组
|
||
@property (nonatomic,strong) NSArray *imageUrls;
|
||
///用户的头像和相册
|
||
@property (nonatomic,strong) NSMutableArray<UserPhoto *> *userPhotoArray;
|
||
///用户信息
|
||
@property (nonatomic,strong) UIView * userInfoView;
|
||
|
||
///用户信息的背景
|
||
|
||
@property (nonatomic,strong) UIStackView *nickStackView;
|
||
///名字
|
||
@property (nonatomic,strong) UILabel *nameLabel;
|
||
///sex
|
||
@property (nonatomic,strong) UIButton *sexImageView;
|
||
|
||
/////正在直播父图
|
||
//@property (nonatomic,strong) UIImageView *onlineView;
|
||
///正在直播icon图
|
||
@property (nonatomic,strong) SVGAImageView *onlineIconView;
|
||
/////正在直播中tilte
|
||
//@property (nonatomic,strong) UILabel *onlineTitleView;
|
||
///正在直播中
|
||
@property (nonatomic,strong) UIButton *onlineButton;
|
||
///
|
||
@property (nonatomic,strong) UIStackView *idStackView;
|
||
///靓号
|
||
@property (nonatomic,strong) UIImageView *beautifulImageView;
|
||
///id
|
||
@property (nonatomic,strong) UILabel *idLabel;
|
||
@property (nonatomic, strong) UIImageView *idIconImageView;
|
||
///
|
||
@property (nonatomic, strong) UIImageView *copyIdImageView;
|
||
|
||
///魅力等级 等级 铭牌
|
||
@property (nonatomic,strong) UIStackView *tagStackView;
|
||
///魅力等级
|
||
@property (nonatomic,strong) NetImageView *charmImageView;
|
||
|
||
///等级
|
||
@property (nonatomic,strong) NetImageView *experImageView;
|
||
///代充
|
||
@property (nonatomic,strong) NetImageView *rechargeImageView;
|
||
///铭牌的容器
|
||
@property (nonatomic,strong) UIView * namePlateView;
|
||
///铭牌图片
|
||
@property (nonatomic,strong) NetImageView *nameplateImageView;
|
||
///铭牌文字
|
||
@property (nonatomic,strong) UILabel *nameplateLabel;
|
||
///新用户
|
||
@property (nonatomic,strong) UIImageView *newUserImageView;
|
||
///官方的
|
||
@property (nonatomic,strong) UIImageView *officialImageView;
|
||
|
||
///标签跟签名容器
|
||
@property (nonatomic,strong) UIStackView *singStackView;
|
||
///标签
|
||
@property (nonatomic,strong) XPMineUserInfoHeaderTagView *tagView;
|
||
///签名的背景
|
||
@property (nonatomic,strong) UIView * signBackView;
|
||
///签名
|
||
@property (nonatomic,strong) UILabel *signatureLabel;
|
||
///分割线
|
||
//@property (nonatomic,strong) UIView * lineView;
|
||
///头像的
|
||
@property (nonatomic,strong) UserPhoto *avatarPhoto;
|
||
///头像
|
||
@property (nonatomic,strong) NetImageView * avatarView;
|
||
|
||
///普通的
|
||
@property (nonatomic,strong) YYAnimatedImageView *headWearImageView;
|
||
///头饰播放
|
||
@property (nonatomic, strong) SpriteSheetImageManager *manager;
|
||
@property (nonatomic, strong) SVGAImageView *headWearSvgaImageView;
|
||
|
||
///VIP等级icon
|
||
@property (nonatomic,strong) NetImageView *nobleImageView;
|
||
|
||
@property (nonatomic, strong) UIStackView *locateDateStackView;
|
||
@property (nonatomic, strong) UILabel *locateLabel;
|
||
|
||
@property (nonatomic, strong) UIImageView *relationshipView;
|
||
@property (nonatomic, strong) UILabel *fansNum;
|
||
@property (nonatomic, strong) UILabel *followersNum;
|
||
|
||
|
||
|
||
@end
|
||
|
||
@implementation XPMineUserInfoHeaderView
|
||
|
||
- (instancetype)initWithFrame:(CGRect)frame {
|
||
self = [super initWithFrame:frame];
|
||
if (self) {
|
||
[self setupUI];
|
||
}
|
||
return self;
|
||
}
|
||
|
||
+ (CGFloat)headerHeight:(UserInfoModel *)model {
|
||
if (model.userDesc.length == 0) {
|
||
return 470;
|
||
} else {
|
||
// 限定宽度
|
||
CGFloat maxWidth = KScreenWidth - 70;
|
||
UIFont *font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
||
// 设置计算属性
|
||
NSDictionary *attributes = @{NSFontAttributeName:font};
|
||
|
||
// 计算文本的矩形区域
|
||
CGRect textRect = [model.userDesc boundingRectWithSize:CGSizeMake(maxWidth, CGFLOAT_MAX)
|
||
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
|
||
attributes:attributes
|
||
context:nil];
|
||
|
||
// 计算每行的高度
|
||
CGFloat lineHeight = font.lineHeight;
|
||
|
||
// 计算行数
|
||
NSInteger numberOfLines = ceil(textRect.size.height / lineHeight);
|
||
if (numberOfLines>1) {
|
||
return 470 + 14 * numberOfLines;
|
||
}
|
||
}
|
||
return 500;
|
||
}
|
||
|
||
#pragma mark - Private Method
|
||
- (void)setupUI {
|
||
self.backgroundColor = [UIColor clearColor];
|
||
|
||
[self addSubview:self.pi_cycleScrollView];
|
||
[self.pi_cycleScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.leading.trailing.top.mas_equalTo(self);
|
||
make.height.mas_equalTo(kGetScaleWidth(256));
|
||
}];
|
||
|
||
[self addSubview:self.onlineButton];
|
||
[self.onlineButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
if (isMSRTL()) {
|
||
make.left.mas_equalTo(self).offset(-10);
|
||
} else {
|
||
make.right.mas_equalTo(self).offset(10);
|
||
}
|
||
make.top.mas_equalTo(self).offset(104);
|
||
make.height.mas_equalTo(24);
|
||
}];
|
||
|
||
[self.onlineButton addSubview:self.onlineIconView];
|
||
[self.onlineIconView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.leading.mas_equalTo(8);
|
||
make.centerY.mas_equalTo(0);
|
||
make.width.mas_equalTo(12);
|
||
make.height.mas_equalTo(12);
|
||
}];
|
||
|
||
@kWeakify(self);
|
||
SVGAParser * parser = [[SVGAParser alloc]init];
|
||
[parser parseWithNamed:@"pi_new_mine_info_online" inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||
@kStrongify(self);
|
||
self.onlineIconView.loops = 0;
|
||
self.onlineIconView.clearsAfterStop = NO;
|
||
self.onlineIconView.videoItem = videoItem;
|
||
[self.onlineIconView startAnimation];
|
||
} failureBlock:^(NSError * _Nonnull error) { }];
|
||
|
||
[self addSubview:self.pageButton];
|
||
[self.pageButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.right.mas_equalTo(self);
|
||
make.top.mas_equalTo(self.onlineButton.mas_bottom).offset(76);
|
||
make.size.mas_equalTo(CGSizeMake(63, 23));
|
||
}];
|
||
|
||
[self addSubview:self.userInfoView];
|
||
[self.userInfoView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.leading.trailing.mas_equalTo(self);
|
||
make.top.mas_equalTo(self).offset(kGetScaleWidth(224));
|
||
make.bottom.mas_equalTo(self);
|
||
}];
|
||
|
||
[self addSubview:self.avatarView];
|
||
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.width.height.mas_equalTo(kGetScaleWidth(72));
|
||
make.centerX.mas_equalTo(0);
|
||
make.centerY.equalTo(self.userInfoView.mas_top);
|
||
}];
|
||
|
||
[self addSubview:self.headWearImageView];
|
||
[self.headWearImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.center.mas_equalTo(self.avatarView);
|
||
make.width.height.mas_equalTo(kGetScaleWidth(92));
|
||
}];
|
||
|
||
[self addSubview:self.headWearSvgaImageView];
|
||
[self.headWearSvgaImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.center.mas_equalTo(self.avatarView);
|
||
make.width.height.mas_equalTo(kGetScaleWidth(96));
|
||
}];
|
||
|
||
[self addSubview:self.reviewIcon];
|
||
|
||
[self setupNameArea];
|
||
|
||
[self setupIDArea];
|
||
|
||
[self setupLocateArea];
|
||
|
||
[self setupTagsArea];
|
||
|
||
[self setupCustomDesc];
|
||
|
||
[self setupRelationshipArea];
|
||
}
|
||
|
||
- (void)setupNameArea {
|
||
[self.userInfoView addSubview:self.nickStackView];
|
||
[self.nickStackView addArrangedSubview:self.nobleImageView];
|
||
[self.nickStackView addArrangedSubview:self.nameLabel];
|
||
[self.nickStackView addArrangedSubview:self.sexImageView];
|
||
|
||
[self.nickStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.centerX.mas_equalTo(self.userInfoView);
|
||
make.top.mas_equalTo(self.avatarView.mas_bottom).offset(10);
|
||
make.height.mas_equalTo(20);
|
||
}];
|
||
|
||
[self.nobleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.width.height.mas_equalTo(20);
|
||
}];
|
||
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(14);
|
||
}];
|
||
}
|
||
|
||
- (void)setupIDArea {
|
||
|
||
[self.userInfoView addSubview:self.idStackView];
|
||
[self.idStackView addArrangedSubview:self.idLabel];
|
||
[self.idStackView addSubview:self.idIconImageView];
|
||
[self.idStackView addSubview:self.copyIdImageView];
|
||
[self.idStackView insertSubview:self.beautifulImageView belowSubview:self.idLabel];
|
||
|
||
[self.idStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
if (isMSRTL()) {
|
||
make.centerX.mas_equalTo(self.userInfoView).offset(8);
|
||
} else {
|
||
make.centerX.mas_equalTo(self.userInfoView);
|
||
}
|
||
make.top.mas_equalTo(self.nickStackView.mas_bottom).offset(6);
|
||
}];
|
||
[self.beautifulImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(23.5);
|
||
make.left.mas_equalTo(self.idLabel).offset(-18);
|
||
make.right.mas_equalTo(self.idLabel).offset(4);
|
||
make.centerY.mas_equalTo(self.idLabel).offset(-0.5);
|
||
}];
|
||
[self.idIconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.width.height.mas_equalTo(14);
|
||
make.centerY.mas_equalTo(self.idLabel);
|
||
make.right.mas_equalTo(self.idLabel.mas_left).offset(0);
|
||
}];
|
||
[self.idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(14);
|
||
}];
|
||
[self.copyIdImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.size.mas_equalTo(CGSizeMake(13.4, 13.4));
|
||
make.centerY.mas_equalTo(self.idLabel);
|
||
if (isMSRTL()) {
|
||
make.right.mas_equalTo(self.idLabel.mas_left).offset(-24);
|
||
} else {
|
||
make.left.mas_equalTo(self.idLabel.mas_right).offset(0);
|
||
}
|
||
}];
|
||
}
|
||
|
||
- (void)setupLocateArea {
|
||
[self.userInfoView addSubview:self.locateDateStackView];
|
||
[self.locateDateStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.leading.trailing.mas_equalTo(self.userInfoView);
|
||
make.top.mas_equalTo(self.idStackView.mas_bottom).offset(4);
|
||
}];
|
||
[self.locateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(14);
|
||
}];
|
||
[self.locateDateStackView addArrangedSubview:[self stackSpaceView]];
|
||
[self.locateDateStackView addArrangedSubview:self.locateLabel];
|
||
[self.locateDateStackView addArrangedSubview:[self stackSpaceView]];
|
||
}
|
||
|
||
- (void)setupTagsArea {
|
||
[self.userInfoView addSubview:self.tagStackView];
|
||
///用户信息中的标签
|
||
// [self.tagStackView addArrangedSubview:[self stackSpaceView]];
|
||
[self.tagStackView addArrangedSubview:self.newUserImageView];
|
||
[self.tagStackView addArrangedSubview:self.officialImageView];
|
||
[self.tagStackView addArrangedSubview:self.experImageView];
|
||
[self.tagStackView addArrangedSubview:self.charmImageView];
|
||
[self.tagStackView addArrangedSubview:self.namePlateView];
|
||
[self.tagStackView addArrangedSubview:self.rechargeImageView];
|
||
// [self.tagStackView addArrangedSubview:[self stackSpaceView]];
|
||
|
||
///铭牌
|
||
[self.namePlateView addSubview:self.nameplateImageView];
|
||
[self.namePlateView addSubview:self.nameplateLabel];
|
||
[self.nameplateImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(30);
|
||
make.top.mas_equalTo(0);
|
||
make.width.mas_equalTo(80);
|
||
}];
|
||
[self.nameplateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.top.bottom.mas_equalTo(self.nameplateImageView);
|
||
make.trailing.mas_equalTo(self.namePlateView).offset(-2);
|
||
}];
|
||
|
||
[self.tagStackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.top.mas_equalTo(self.locateDateStackView.mas_bottom).offset(4);
|
||
make.centerX.mas_equalTo(self.userInfoView);
|
||
make.leading.mas_equalTo(self.newUserImageView);
|
||
make.trailing.mas_equalTo(self.rechargeImageView);
|
||
}];
|
||
[self.newUserImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.width.height.mas_equalTo(20);
|
||
}];
|
||
[self.officialImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.width.height.mas_equalTo(20);
|
||
}];
|
||
[self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(20);
|
||
make.width.mas_equalTo(34);
|
||
}];
|
||
[self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(20);
|
||
make.width.mas_equalTo(34);
|
||
}];
|
||
[self.rechargeImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(18);
|
||
make.width.mas_equalTo(54);
|
||
}];
|
||
[self.namePlateView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(30);
|
||
make.width.mas_equalTo(80);
|
||
}];
|
||
}
|
||
|
||
- (void)setupCustomDesc {
|
||
[self.userInfoView addSubview:self.signatureLabel];
|
||
[self.signatureLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.centerX.mas_equalTo(self.userInfoView);
|
||
make.top.mas_equalTo(self.tagStackView.mas_bottom).offset(4);
|
||
make.width.mas_equalTo(KScreenWidth - 70);
|
||
}];
|
||
}
|
||
|
||
- (void)setupRelationshipArea {
|
||
[self.userInfoView addSubview:self.relationshipView];
|
||
[self.relationshipView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.top.mas_equalTo(self.signatureLabel.mas_bottom).offset(10);
|
||
make.left.mas_equalTo(self.userInfoView).offset(14);
|
||
make.right.mas_equalTo(self.userInfoView).offset(-14);
|
||
make.height.mas_equalTo(55);
|
||
}];
|
||
|
||
UIView *line = [[UIView alloc] init];
|
||
line.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6];
|
||
[self.relationshipView addSubview:line];
|
||
[line mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.center.mas_equalTo(self.relationshipView);
|
||
make.size.mas_equalTo(CGSizeMake(1.5, 20));
|
||
}];
|
||
|
||
UILabel *followerTitle = [UILabel labelInitWithText:YMLocalizedString(@"XPMineHeadView4")
|
||
font:[UIFont systemFontOfSize:13 weight:UIFontWeightBold]
|
||
textColor:[UIColor colorWithWhite:1 alpha:0.8]];
|
||
UILabel *fansTitle = [UILabel labelInitWithText:YMLocalizedString(@"XPMineHeadView5")
|
||
font:[UIFont systemFontOfSize:13 weight:UIFontWeightBold]
|
||
textColor:[UIColor colorWithWhite:1 alpha:0.8]];
|
||
[self.relationshipView addSubview:followerTitle];
|
||
[followerTitle mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.top.mas_equalTo(self.relationshipView).offset(10);
|
||
if (isMSRTL()) {
|
||
make.left.mas_equalTo(line.mas_right).offset(60);
|
||
} else {
|
||
make.right.mas_equalTo(line.mas_left).offset(-60);
|
||
}
|
||
}];
|
||
[self.relationshipView addSubview:fansTitle];
|
||
[fansTitle mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.top.mas_equalTo(self.relationshipView).offset(10);
|
||
if (isMSRTL()) {
|
||
make.right.mas_equalTo(line.mas_left).offset(-60);
|
||
} else {
|
||
make.left.mas_equalTo(line.mas_right).offset(60);
|
||
}
|
||
}];
|
||
|
||
[self.relationshipView addSubview:self.followersNum];
|
||
[self.followersNum mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.centerX.mas_equalTo(followerTitle);
|
||
make.top.mas_equalTo(followerTitle.mas_bottom).offset(4);
|
||
}];
|
||
|
||
[self.relationshipView addSubview:self.fansNum];
|
||
[self.fansNum mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
make.centerX.mas_equalTo(fansTitle);
|
||
make.top.mas_equalTo(fansTitle.mas_bottom).offset(4);
|
||
}];
|
||
}
|
||
|
||
- (void)initSubViews {
|
||
[self.singStackView addArrangedSubview:self.tagView];
|
||
[self.singStackView addArrangedSubview:self.signBackView];
|
||
[self.signBackView addSubview:self.signatureLabel];
|
||
}
|
||
|
||
#pragma mark - SDPhotoBrowserDelegate
|
||
- (NSURL *)photoBrowser:(SDPhotoBrowser *)browser highQualityImageURLForIndex:(NSInteger)index {
|
||
if(browser.isAvatar == YES){
|
||
return [NSURL URLWithString:self.avatarView.imageUrl];
|
||
}
|
||
NSString * photoUrl = [self.imageUrls objectAtIndex:index];
|
||
return [NSURL URLWithString:photoUrl];
|
||
}
|
||
|
||
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index {
|
||
return [UIImageConstant defaultBannerPlaceholder];
|
||
}
|
||
|
||
#pragma mark - SDCycleScrollViewDelegate
|
||
-(void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index {
|
||
[self.pageButton setTitle:[NSString stringWithFormat:@"%ld/%lu",(index + 1), (unsigned long)self.imageUrls.count] forState:UIControlStateNormal];
|
||
UserPhoto * photo = [self.userPhotoArray objectAtIndex:index];
|
||
self.reviewIcon.hidden = !photo.isReview;
|
||
}
|
||
|
||
// 轮播图点击
|
||
- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index {
|
||
NSInteger count = self.imageUrls.count;
|
||
SDPhotoBrowser *browser = [[SDPhotoBrowser alloc]init];
|
||
browser.sourceImagesContainerView = self.pi_cycleScrollView;
|
||
browser.delegate = self;
|
||
browser.imageCount = count;
|
||
browser.currentImageIndex = index;
|
||
browser.isMe = NO;
|
||
[browser show];
|
||
}
|
||
///复制id
|
||
-(void)copyNameAction{
|
||
[XNDJTDDLoadingTool showSuccessWithMessage:YMLocalizedString(@"XPMineUserInfoHeaderView0")];
|
||
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
|
||
pasteboard. string = [NSString stringWithFormat:@"%ld", (long)_userInfo.erbanNo];
|
||
}
|
||
|
||
#pragma mark - XPMineUserInfoHeaderTagView
|
||
- (void)didClickGotoIvidualView{
|
||
if(self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoHeaderView:didClickGotoEditView:)]){
|
||
[self.delegate xPMineUserInfoHeaderView:self didClickGotoEditView:self.tagView.itemList];
|
||
}
|
||
}
|
||
- (void)didClickGotoEditVC{
|
||
if(self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoHeaderView:didClickGotoEditVC:)]){
|
||
[self.delegate xPMineUserInfoHeaderView:self didClickGotoEditVC:self.tagView.itemList];
|
||
}
|
||
}
|
||
#pragma mark - Event Response
|
||
-(void)clickAvatarAction{
|
||
SDPhotoBrowser *browser = [[SDPhotoBrowser alloc]init];
|
||
browser.sourceImagesContainerView = self.avatarView;
|
||
browser.delegate = self;
|
||
browser.imageCount = 1;
|
||
browser.currentImageIndex = 0;
|
||
browser.isMe = NO;
|
||
browser.isAvatar = YES;
|
||
[browser show];
|
||
}
|
||
|
||
- (void)onlineButtonAction:(UIButton *)sender {
|
||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoHeaderView:didClickGoToRoom:)]) {
|
||
[self.delegate xPMineUserInfoHeaderView:self didClickGoToRoom:self.roomUid];
|
||
}
|
||
}
|
||
|
||
#pragma mark - Getters And Setters
|
||
- (CGFloat)widthOfText:(NSString *)text withFont:(UIFont *)font {
|
||
NSDictionary *attributes = @{NSFontAttributeName: font};
|
||
CGSize textSize = [text sizeWithAttributes:attributes];
|
||
return textSize.width;
|
||
}
|
||
|
||
- (void)setUserInfo:(UserInfoModel *)userInfo {
|
||
_userInfo = userInfo;
|
||
if (!_userInfo) {
|
||
return;
|
||
}
|
||
|
||
[self updateNameAndGenderInfo];
|
||
[self updateIDInfo];
|
||
[self updateLocateAndRegionInfo];
|
||
[self updateSignatureInfo];
|
||
[self updateRelationShipInfo];
|
||
[self updateHeadwearInfo];
|
||
|
||
self.officialImageView.hidden = userInfo.defUser != UserLevelType_Offical;
|
||
self.newUserImageView.hidden = !userInfo.newUser;
|
||
|
||
|
||
if (userInfo.userLevelVo.experUrl) {
|
||
[self.experImageView loadImageWithUrl:userInfo.userLevelVo.experUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||
self.experImageView.image = image;
|
||
CGFloat width = image.size.width*20/ (image.size.height > 0 ? image.size.height : 1);
|
||
[self.experImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(20);
|
||
make.width.mas_equalTo(width);
|
||
}];
|
||
}];
|
||
}
|
||
self.experImageView.hidden = userInfo.userLevelVo.experUrl.length <= 0;
|
||
|
||
if (userInfo.userLevelVo.charmUrl) {
|
||
[self.charmImageView loadImageWithUrl:userInfo.userLevelVo.charmUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||
self.charmImageView.image = image;
|
||
CGFloat width = image.size.width*20/ (image.size.height > 0 ? image.size.height : 1);
|
||
[self.charmImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
||
make.height.mas_equalTo(20);
|
||
make.width.mas_equalTo(width);
|
||
}];
|
||
}] ;
|
||
}
|
||
self.charmImageView.hidden = userInfo.userLevelVo.charmUrl.length <= 0;
|
||
if(userInfo.isCustomWord == YES){
|
||
if (userInfo.nameplatePic.length > 0) {
|
||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||
self.namePlateView.hidden = NO;
|
||
} else {
|
||
self.namePlateView.hidden = YES;
|
||
}
|
||
}else{
|
||
if (userInfo.nameplateWord.length > 0 && userInfo.nameplatePic.length > 0) {
|
||
self.nameplateImageView.imageUrl = userInfo.nameplatePic;
|
||
self.nameplateLabel.text = userInfo.nameplateWord;
|
||
self.namePlateView.hidden = NO;
|
||
} else {
|
||
self.namePlateView.hidden = YES;
|
||
}
|
||
}
|
||
|
||
self.rechargeImageView.hidden = !_userInfo.isRechargeUser;
|
||
[self.userPhotoArray removeAllObjects];
|
||
// 轮播图
|
||
NSMutableArray * imageUrls = [NSMutableArray array];
|
||
if (userInfo.avatar) {
|
||
[imageUrls addObject:userInfo.avatar];
|
||
if (![self.userPhotoArray containsObject:self.avatarPhoto]) {
|
||
[self.userPhotoArray addObject:self.avatarPhoto];
|
||
}
|
||
self.avatarPhoto.isReview = userInfo.isReview;
|
||
self.avatarPhoto.photoUrl = userInfo.avatar;
|
||
self.avatarView.imageUrl = userInfo.avatar;
|
||
}
|
||
if (self.userInfo.privatePhoto.count > 0) {
|
||
for (int i = 0; i < self.userInfo.privatePhoto.count; i++) {
|
||
UserPhoto * photo = [self.userInfo.privatePhoto objectAtIndex:i];
|
||
if (photo.photoUrl.length > 0) {
|
||
[self.userPhotoArray addObject:photo];
|
||
[imageUrls addObject:photo.photoUrl];
|
||
}
|
||
}
|
||
}
|
||
|
||
if (imageUrls.count > 0) {
|
||
self.imageUrls = imageUrls;
|
||
self.pi_cycleScrollView.imageURLStringsGroup = imageUrls;
|
||
[self.pageButton setTitle:[NSString stringWithFormat:@"1/%lu",(unsigned long)imageUrls.count] forState:UIControlStateNormal];;
|
||
// 要初始化一下当前的审核状态
|
||
if(self.userPhotoArray.count > 0){
|
||
self.reviewIcon.hidden = ![self.userPhotoArray objectAtIndex:0].isReview;
|
||
}
|
||
}
|
||
|
||
self.nobleImageView.hidden = userInfo.userVipInfoVO.vipIcon.length == 0;
|
||
[self.nobleImageView loadImageWithUrl:userInfo.userVipInfoVO.vipIcon completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
|
||
self.nobleImageView.image = image;
|
||
CGFloat height = image.size.height > 0 ? image.size.height : 1;
|
||
CGFloat scale = image.size.width / height ;
|
||
[self.nobleImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||
make.size.mas_equalTo(CGSizeMake(30* scale, 30));
|
||
}];
|
||
}];
|
||
|
||
[self layoutIfNeeded];
|
||
}
|
||
|
||
- (void)setRoomUid:(NSString *)roomUid {
|
||
_roomUid = roomUid;
|
||
if([XPSkillCardPlayerManager shareInstance].isInRoom == YES || [[XPRoomMiniManager shareManager] getRoomInfo] != nil){
|
||
self.onlineButton.hidden = _roomUid.length <= 0;
|
||
}else{
|
||
self.onlineButton.hidden = YES;
|
||
}
|
||
|
||
}
|
||
-(void)setTagModel:(XPMineUserInfoTagModel *)tagModel{
|
||
_tagModel = tagModel;
|
||
NSMutableArray *itemList = [NSMutableArray array];
|
||
for (NSString *text in _tagModel.meLabels) {
|
||
if(text.length > 0){
|
||
XPMineUserInfoTagItemModel *model = [XPMineUserInfoTagItemModel new];
|
||
model.label = text;
|
||
CGRect stringRect = [text boundingRectWithSize:CGSizeMake(MAXFLOAT, 18)
|
||
options:NSStringDrawingUsesLineFragmentOrigin
|
||
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10 weight:UIFontWeightRegular]}
|
||
context:nil];
|
||
model.width = stringRect.size.width + 14;
|
||
[itemList addObject:model];
|
||
}
|
||
}
|
||
NSString *uid = [[AccountInfoStorage instance]getUid];
|
||
BOOL isMe = self.userInfo.uid == uid.integerValue;
|
||
if(isMe == YES){
|
||
_tagView.hidden = YES;
|
||
}else{
|
||
// _tagView.hidden = !(itemList.count > 0);
|
||
_tagView.hidden = YES;
|
||
}
|
||
_tagView.uid = @(self.userInfo.uid).stringValue;
|
||
_tagView.itemList = itemList;
|
||
}
|
||
|
||
- (void)updateNameAndGenderInfo {
|
||
self.nameLabel.text = self.userInfo.nick;
|
||
UIImage *sexBackgroundImage = nil;
|
||
if (self.userInfo.gender == GenderType_Male) {
|
||
sexBackgroundImage = [UIImage gradientColorImageFromColors:@[UIColorRGBAlpha(0x6BB3FF, 0.5),UIColorFromRGB(0x6BB3FF)]
|
||
gradientType:GradientTypeTopToBottom
|
||
imgSize:CGSizeMake(35, 16)];
|
||
} else {
|
||
sexBackgroundImage = [UIImage gradientColorImageFromColors:@[UIColorFromRGB(0xF2A0C3),UIColorFromRGB(0xEB74A6)]
|
||
gradientType:GradientTypeTopToBottom
|
||
imgSize:CGSizeMake(35, 16)];
|
||
}
|
||
[self.sexImageView setTitle:[NSString getAgeWithBirth:self.userInfo.birth] forState:UIControlStateNormal];
|
||
[self.sexImageView setBackgroundImage:sexBackgroundImage forState:UIControlStateNormal];
|
||
}
|
||
|
||
- (void)updateIDInfo {
|
||
NSString *text = @"";
|
||
BOOL hasBeautifulID = self.userInfo.hasPrettyErbanNo;
|
||
if (hasBeautifulID) {
|
||
text = [NSString stringWithFormat:@"%ld", (long)self.userInfo.erbanNo];
|
||
} else {
|
||
text = [NSString stringWithFormat:@" %ld", (long)self.userInfo.erbanNo];
|
||
}
|
||
|
||
NSString *offsetSpace = @"";
|
||
if (hasBeautifulID) {
|
||
if (self.userInfo.erbanNo > 9) {
|
||
offsetSpace = @" ";
|
||
} else if (self.userInfo.erbanNo > 99) {
|
||
offsetSpace = @" ";
|
||
} else if (self.userInfo.erbanNo > 999) {
|
||
offsetSpace = @"";
|
||
}
|
||
}
|
||
self.idLabel.text = [NSString stringWithFormat:@"%@%@",offsetSpace,text];
|
||
self.beautifulImageView.hidden = !hasBeautifulID;
|
||
self.idIconImageView.hidden = hasBeautifulID;
|
||
|
||
if (hasBeautifulID) {
|
||
self.idLabel.alpha = 1;
|
||
self.idLabel.textColor = [UIColor whiteColor];
|
||
if (self.userInfo.erbanNo > 999) {
|
||
UIImage *longBackgroundImage = [UIImage imageNamed:@"user_info_id_beatiful_mark"];
|
||
UIEdgeInsets capInsets = UIEdgeInsetsMake(0, 20, 0, 4);
|
||
UIImage *resizableImage = [longBackgroundImage resizableImageWithCapInsets:capInsets resizingMode:UIImageResizingModeStretch];
|
||
self.beautifulImageView.image = resizableImage;
|
||
} else {
|
||
UIImage *idMark = [UIImage imageNamed:@"user_info_id_beatiful_mark_short"];
|
||
self.beautifulImageView.image = idMark;
|
||
}
|
||
[self.copyIdImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||
if (isMSRTL()) {
|
||
make.right.mas_equalTo(self.idLabel.mas_left).offset(-24);
|
||
} else {
|
||
make.left.mas_equalTo(self.idLabel.mas_right).offset(6);
|
||
}
|
||
}];
|
||
} else {
|
||
self.idLabel.alpha = 0.8;
|
||
[self.copyIdImageView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||
if (isMSRTL()) {
|
||
make.right.mas_equalTo(self.idLabel.mas_left).offset(-24);
|
||
} else {
|
||
make.left.mas_equalTo(self.idLabel.mas_right).offset(2);
|
||
}
|
||
}];
|
||
}
|
||
}
|
||
|
||
- (void)updateLocateAndRegionInfo {
|
||
NSString *locateString = @"";
|
||
if (self.userInfo.region.length > 0) {
|
||
locateString = [NSString stringWithFormat:@"%@ | ", self.userInfo.region];
|
||
}
|
||
NSDate *date = [NSDate dateWithTimeIntervalSince1970:self.userInfo.birth/1000];
|
||
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
||
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
|
||
NSString *dateString = [dateFormatter stringFromDate:date];
|
||
|
||
self.locateLabel.text = [NSString stringWithFormat:@"%@%@", locateString, dateString];
|
||
}
|
||
|
||
- (void)updateSignatureInfo {
|
||
self.signatureLabel.text = _userInfo.userDesc.length > 0 ? self.userInfo.userDesc : YMLocalizedString(@"XPMineUserInfoHeaderView6");
|
||
[self.signatureLabel setTextColor:self.userInfo.userDesc.length > 0 ? UIColorFromRGB(0x1a1a1a) : UIColorRGBAlpha(0x1a1a1a, 0.6)];
|
||
[self.signatureLabel setFont:self.userInfo.userDesc.length > 0 ? [UIFont systemFontOfSize:12 weight:UIFontWeightMedium] : [UIFont systemFontOfSize:12 weight:UIFontWeightRegular]];
|
||
}
|
||
|
||
- (void)updateRelationShipInfo {
|
||
self.fansNum.text = [@(self.userInfo.fansNum) stringValue];
|
||
self.followersNum.text = [@(self.userInfo.followNum) stringValue];
|
||
}
|
||
|
||
- (void)updateHeadwearInfo {
|
||
NSString *headerUrl = self.userInfo.headwearEffect.length > 0 ? self.userInfo.headwearEffect : self.userInfo.headwearPic;
|
||
if (headerUrl.length == 0) {
|
||
self.headWearImageView.hidden = YES;
|
||
self.headWearSvgaImageView.hidden = YES;
|
||
} else {
|
||
if ([self.userInfo isHeadWearSVGA]) {
|
||
[self playSVGA:headerUrl];
|
||
} else {
|
||
[self playAnimate:headerUrl];
|
||
}
|
||
}
|
||
}
|
||
|
||
- (void)playSVGA:(NSString *)svgaUrlString {
|
||
[self.headWearSvgaImageView setImageName:svgaUrlString];
|
||
return;
|
||
|
||
@kWeakify(self);
|
||
SVGAParser * parser = [[SVGAParser alloc]init];
|
||
NSURL *url = [NSURL URLWithString:svgaUrlString];
|
||
[parser parseWithURL:url
|
||
completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
|
||
@kStrongify(self);
|
||
self.headWearSvgaImageView.hidden = NO;
|
||
self.headWearSvgaImageView.loops = 0;
|
||
self.headWearSvgaImageView.clearsAfterStop = NO;
|
||
self.headWearSvgaImageView.videoItem = videoItem;
|
||
[self.headWearSvgaImageView startAnimation];
|
||
}
|
||
failureBlock:^(NSError * _Nullable error) {
|
||
|
||
}];
|
||
}
|
||
|
||
- (void)playAnimate:(NSString *)headwearUrlString {
|
||
self.headWearImageView.hidden = NO;
|
||
NSURL *url = [NSURL URLWithString:headwearUrlString];
|
||
@kWeakify(self);
|
||
[self.manager loadSpriteSheetImageWithURL:url completionBlock:^(YYSpriteSheetImage * _Nullable sprit) {
|
||
@kStrongify(self);
|
||
self.headWearImageView.image = sprit;
|
||
} failureBlock:^(NSError * _Nullable error) {
|
||
NSLog(@"%@", error);
|
||
}];
|
||
}
|
||
|
||
#pragma mark - Getters
|
||
- (UIView *)userInfoView {
|
||
if (!_userInfoView) {
|
||
_userInfoView = [[UIView alloc] init];
|
||
_userInfoView.backgroundColor = [UIColor whiteColor];
|
||
_userInfoView.layer.masksToBounds = YES;
|
||
_userInfoView.layer.cornerRadius = 16;
|
||
_userInfoView.clipsToBounds = YES;
|
||
}
|
||
return _userInfoView;
|
||
}
|
||
|
||
- (UIStackView *)nickStackView {
|
||
if (!_nickStackView) {
|
||
_nickStackView = [[UIStackView alloc] init];
|
||
_nickStackView.backgroundColor = [UIColor clearColor];
|
||
_nickStackView.axis = UILayoutConstraintAxisHorizontal;
|
||
_nickStackView.distribution = UIStackViewDistributionFill;
|
||
_nickStackView.alignment = UIStackViewAlignmentCenter;
|
||
_nickStackView.spacing = 4;
|
||
if (isMSRTL()) {
|
||
_nickStackView.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
|
||
}
|
||
}
|
||
return _nickStackView;
|
||
}
|
||
|
||
- (UILabel *)nameLabel {
|
||
if (!_nameLabel) {
|
||
_nameLabel = [[UILabel alloc] init];
|
||
_nameLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold];
|
||
_nameLabel.textColor = UIColorFromRGB(0x1A1A1A);
|
||
_nameLabel.numberOfLines = 1;
|
||
[_nameLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
|
||
[_nameLabel setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
|
||
}
|
||
return _nameLabel;
|
||
}
|
||
|
||
- (UIButton *)sexImageView {
|
||
if (!_sexImageView) {
|
||
_sexImageView = [[UIButton alloc] init];
|
||
[_sexImageView setImage:kImage(@"home_age_boy_icon") forState:UIControlStateNormal];
|
||
[_sexImageView setImage:kImage(@"home_age_girl_icon") forState:UIControlStateSelected];
|
||
_sexImageView.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];
|
||
[_sexImageView setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||
_sexImageView.imageEdgeInsets = UIEdgeInsetsMake(0, 2, 0, 0);
|
||
_sexImageView.layer.cornerRadius = 14/2;
|
||
_sexImageView.layer.masksToBounds = YES;
|
||
}
|
||
return _sexImageView;
|
||
}
|
||
|
||
- (UIStackView *)idStackView {
|
||
if (!_idStackView) {
|
||
_idStackView = [[UIStackView alloc] init];
|
||
_idStackView.backgroundColor = [UIColor clearColor];
|
||
_idStackView.axis = UILayoutConstraintAxisHorizontal;
|
||
_idStackView.distribution = UIStackViewDistributionEqualCentering;
|
||
_idStackView.alignment = UIStackViewAlignmentCenter;
|
||
_idStackView.spacing = 5;
|
||
_idStackView.clipsToBounds = NO;
|
||
|
||
UITapGestureRecognizer *longPress = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(copyNameAction)];
|
||
[_idStackView addGestureRecognizer:longPress];
|
||
}
|
||
return _idStackView;
|
||
}
|
||
|
||
- (UIImageView *)beautifulImageView {
|
||
if (!_beautifulImageView) {
|
||
_beautifulImageView = [[UIImageView alloc] init];
|
||
_beautifulImageView.userInteractionEnabled = YES;
|
||
_beautifulImageView.hidden = YES;
|
||
// _beautifulImageView.image = [UIImage getLanguageImage:@"user_info_id_beatiful_mark"];
|
||
}
|
||
return _beautifulImageView;
|
||
}
|
||
|
||
- (UILabel *)idLabel {
|
||
if (!_idLabel) {
|
||
_idLabel = [[UILabel alloc] init];
|
||
_idLabel.font = [UIFont systemFontOfSize:11 weight:UIFontWeightMedium];
|
||
_idLabel.textColor = UIColorFromRGB(0x191919);
|
||
_idLabel.userInteractionEnabled = YES;
|
||
_idLabel.clipsToBounds = NO;
|
||
}
|
||
return _idLabel;
|
||
}
|
||
|
||
- (UIImageView *)idIconImageView {
|
||
if (!_idIconImageView) {
|
||
_idIconImageView = [[UIImageView alloc] init];
|
||
_idIconImageView.userInteractionEnabled = YES;
|
||
_idIconImageView.image = [UIImage getLanguageImage:@"user_info_id_mark"];
|
||
}
|
||
return _idIconImageView;
|
||
}
|
||
|
||
- (UIImageView *)copyIdImageView {
|
||
if (!_copyIdImageView) {
|
||
_copyIdImageView = [[UIImageView alloc] init];
|
||
_copyIdImageView.userInteractionEnabled = YES;
|
||
_copyIdImageView.image = [UIImage getLanguageImage:@"user_card_copy_id1"];
|
||
}
|
||
return _copyIdImageView;
|
||
}
|
||
|
||
//-(UIImageView *)onlineView{
|
||
// if (!_onlineView){
|
||
// _onlineView = [UIImageView new];
|
||
// UIImage *image = [UIImage gradientColorImageFromColors:@[[DJDKMIMOMColor confirmButtonGradientStartColor],[DJDKMIMOMColor confirmButtonGradientMiddleColor],[DJDKMIMOMColor confirmButtonGradientEndColor]] gradientType:1 imgSize:CGSizeMake(84, 22)];
|
||
// _onlineView.image = image;
|
||
// _onlineView.userInteractionEnabled = YES;
|
||
// _onlineView.hidden = YES;
|
||
//
|
||
// }
|
||
// return _onlineView;
|
||
//}
|
||
//-(UILabel *)onlineTitleView{
|
||
// if (!_onlineTitleView){
|
||
// _onlineTitleView = [UILabel labelInitWithText:YMLocalizedString(@"XPMineUserInfoHeaderView3") font:[UIFont systemFontOfSize:11 weight:UIFontWeightRegular] textColor:[UIColor whiteColor]];
|
||
// }
|
||
// return _onlineTitleView;
|
||
//}
|
||
|
||
- (SVGAImageView *)onlineIconView {
|
||
if (_onlineIconView == nil) {
|
||
_onlineIconView = [[SVGAImageView alloc]init];
|
||
_onlineIconView.contentMode = UIViewContentModeScaleToFill;
|
||
_onlineIconView.userInteractionEnabled = NO;
|
||
_onlineIconView.backgroundColor = [UIColor clearColor];
|
||
}
|
||
return _onlineIconView;
|
||
}
|
||
|
||
- (UIButton *)onlineButton {
|
||
if (!_onlineButton) {
|
||
_onlineButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
[_onlineButton setBackgroundImage:[UIImage gradientColorImageFromColors:@[UIColorFromRGB(0xf2a20f), UIColorFromRGB(0xffd936)]
|
||
gradientType:GradientTypeLeftToRight
|
||
imgSize:CGSizeMake(64, 24)]
|
||
forState:UIControlStateNormal];
|
||
[_onlineButton addTarget:self
|
||
action:@selector(onlineButtonAction:)
|
||
forControlEvents:UIControlEventTouchUpInside];
|
||
[_onlineButton setTitle:[NSString stringWithFormat:@"%@ ", YMLocalizedString(@"XPMineSimpleUserInfoHeaderView2")]
|
||
forState:UIControlStateNormal];
|
||
[_onlineButton.titleLabel setFont:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium]];
|
||
[_onlineButton setTitleColor:UIColorFromRGB(0xf7f7f7) forState:UIControlStateNormal];
|
||
// [_onlineButton setImage:[UIImage imageNamed:@"mine_online_mark"] forState:UIControlStateNormal];
|
||
[_onlineButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
|
||
_onlineButton.layer.cornerRadius = 12;
|
||
_onlineButton.layer.masksToBounds = YES;
|
||
_onlineButton.hidden = YES;
|
||
|
||
// CGFloat spacing = 4.0; // 图片和标题之间的间距
|
||
_onlineButton.imageEdgeInsets = UIEdgeInsetsMake(0, 40, 0, 0);
|
||
_onlineButton.titleEdgeInsets = UIEdgeInsetsMake(0, 24, 0, 0);
|
||
}
|
||
return _onlineButton;
|
||
}
|
||
|
||
- (SDCycleScrollView *)pi_cycleScrollView {
|
||
if (!_pi_cycleScrollView) {
|
||
_pi_cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero
|
||
delegate:self
|
||
placeholderImage:[UIImageConstant defaultBannerPlaceholder]];
|
||
_pi_cycleScrollView.backgroundColor = [UIColor clearColor];
|
||
_pi_cycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill;
|
||
_pi_cycleScrollView.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated;//SDCycleScrollViewPageContolStyleNone;
|
||
_pi_cycleScrollView.autoScroll = NO;
|
||
// SDCycleScrollView没有适配阿语,在RTL下会乱滚,都用LTR算了
|
||
_pi_cycleScrollView.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
|
||
for (UIView *subView in _pi_cycleScrollView.subviews) {
|
||
subView.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
|
||
}
|
||
}
|
||
return _pi_cycleScrollView;
|
||
}
|
||
|
||
- (UIButton *)pageButton {
|
||
if (!_pageButton) {
|
||
_pageButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||
[_pageButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||
_pageButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
|
||
_pageButton.backgroundColor = UIColorRGBAlpha(0x000000, 0.4);
|
||
_pageButton.layer.cornerRadius = 11;
|
||
_pageButton.layer.masksToBounds = YES;
|
||
|
||
}
|
||
return _pageButton;
|
||
}
|
||
|
||
|
||
- (UIImageView *)reviewIcon {
|
||
if (!_reviewIcon) {
|
||
_reviewIcon = [[UIImageView alloc] init];
|
||
_reviewIcon.image = [UIImage getLanguageImage:@"mine_album_reviewing"];
|
||
_reviewIcon.hidden = YES;
|
||
}
|
||
return _reviewIcon;
|
||
}
|
||
|
||
- (UIStackView *)tagStackView {
|
||
if (!_tagStackView) {
|
||
_tagStackView = [[UIStackView alloc] init];
|
||
_tagStackView.axis = UILayoutConstraintAxisHorizontal;
|
||
_tagStackView.distribution = UIStackViewDistributionFillProportionally;
|
||
_tagStackView.alignment = UIStackViewAlignmentCenter;
|
||
_tagStackView.spacing = 6;
|
||
}
|
||
return _tagStackView;
|
||
}
|
||
- (NetImageView *)experImageView {
|
||
if (!_experImageView) {
|
||
NetImageConfig * config = [[NetImageConfig alloc] init];
|
||
config.imageType = ImageTypeUserCardLevel;
|
||
_experImageView = [[NetImageView alloc] initWithConfig:config];
|
||
_experImageView.userInteractionEnabled = YES;
|
||
_experImageView.hidden = YES;
|
||
_experImageView.contentMode = UIViewContentModeScaleToFill;
|
||
}
|
||
return _experImageView;
|
||
}
|
||
|
||
- (NetImageView *)charmImageView {
|
||
if (!_charmImageView) {
|
||
NetImageConfig * config = [[NetImageConfig alloc] init];
|
||
config.imageType = ImageTypeUserCardLevel;
|
||
_charmImageView = [[NetImageView alloc] initWithConfig:config];
|
||
_charmImageView.userInteractionEnabled = YES;
|
||
_charmImageView.hidden = YES;
|
||
_charmImageView.contentMode = UIViewContentModeScaleToFill;
|
||
}
|
||
return _charmImageView;
|
||
}
|
||
|
||
- (UIView *)namePlateView {
|
||
if (!_namePlateView) {
|
||
_namePlateView = [[UIView alloc] init];
|
||
_namePlateView.backgroundColor = [UIColor clearColor];
|
||
_namePlateView.hidden = YES;
|
||
}
|
||
return _namePlateView;
|
||
}
|
||
|
||
- (NetImageView *)nameplateImageView {
|
||
if (!_nameplateImageView) {
|
||
NetImageConfig * config = [[NetImageConfig alloc] init];
|
||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||
config.imageType = ImageTypeUserCardLevel;
|
||
_nameplateImageView = [[NetImageView alloc] initWithConfig:config];
|
||
_nameplateImageView.userInteractionEnabled = YES;
|
||
_nameplateImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||
}
|
||
return _nameplateImageView;
|
||
}
|
||
|
||
- (UILabel *)nameplateLabel {
|
||
if (!_nameplateLabel) {
|
||
_nameplateLabel = [[UILabel alloc] init];
|
||
_nameplateLabel.font = [UIFont systemFontOfSize:10];
|
||
_nameplateLabel.textAlignment = NSTextAlignmentCenter;
|
||
_nameplateLabel.textColor = [UIColor whiteColor];
|
||
}
|
||
return _nameplateLabel;
|
||
}
|
||
|
||
- (UIImageView *)newUserImageView {
|
||
if (!_newUserImageView) {
|
||
_newUserImageView = [[UIImageView alloc] init];
|
||
_newUserImageView.userInteractionEnabled = YES;
|
||
_newUserImageView.image = [UIImage getLanguageImage:@"common_new_user"];
|
||
_newUserImageView.hidden = YES;
|
||
}
|
||
return _newUserImageView;
|
||
}
|
||
|
||
- (UIImageView *)officialImageView {
|
||
if (!_officialImageView) {
|
||
_officialImageView = [[UIImageView alloc] init];
|
||
_officialImageView.userInteractionEnabled = YES;
|
||
_officialImageView.image = [UIImage imageNamed:@"common_offical"];
|
||
_officialImageView.hidden = YES;
|
||
}
|
||
return _officialImageView;
|
||
}
|
||
|
||
- (UIView *)signBackView {
|
||
if (!_signBackView) {
|
||
_signBackView = [[UIView alloc] init];
|
||
_signBackView.backgroundColor = [UIColor whiteColor];
|
||
|
||
}
|
||
return _signBackView;
|
||
}
|
||
|
||
- (UILabel *)signatureLabel {
|
||
if (!_signatureLabel) {
|
||
_signatureLabel = [[UILabel alloc] init];
|
||
_signatureLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
||
_signatureLabel.textColor = UIColorFromRGB(0x1a1a1a);
|
||
_signatureLabel.numberOfLines = 0;
|
||
_signatureLabel.textAlignment = NSTextAlignmentCenter;
|
||
}
|
||
return _signatureLabel;
|
||
}
|
||
|
||
- (NSMutableArray *)userPhotoArray {
|
||
if (!_userPhotoArray) {
|
||
_userPhotoArray = [NSMutableArray array];
|
||
}
|
||
return _userPhotoArray;
|
||
}
|
||
|
||
- (UserPhoto *)avatarPhoto {
|
||
if (!_avatarPhoto) {
|
||
_avatarPhoto = [[UserPhoto alloc] init];
|
||
}
|
||
return _avatarPhoto;
|
||
}
|
||
-(NetImageView *)avatarView{
|
||
if (!_avatarView){
|
||
NetImageConfig * config = [[NetImageConfig alloc] init];
|
||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||
config.imageType = ImageTypeUserIcon;
|
||
_avatarView = [[NetImageView alloc]initWithConfig:config];
|
||
_avatarView.layer.cornerRadius = kGetScaleWidth(36);
|
||
_avatarView.layer.masksToBounds = YES;
|
||
_avatarView.layer.borderWidth = 1;
|
||
_avatarView.userInteractionEnabled = YES;
|
||
_avatarView.layer.borderColor = [UIColor whiteColor].CGColor;
|
||
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickAvatarAction)];
|
||
[_avatarView addGestureRecognizer:tap];
|
||
}
|
||
return _avatarView;
|
||
}
|
||
|
||
- (YYAnimatedImageView *)headWearImageView {
|
||
if (!_headWearImageView) {
|
||
_headWearImageView = [[YYAnimatedImageView alloc] init];
|
||
_headWearImageView.backgroundColor = [UIColor clearColor];
|
||
_headWearImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||
_headWearImageView.layer.masksToBounds = YES;
|
||
_headWearImageView.layer.cornerRadius = 10;
|
||
}
|
||
return _headWearImageView;
|
||
}
|
||
|
||
- (SpriteSheetImageManager *)manager {
|
||
if (!_manager) {
|
||
_manager = [[SpriteSheetImageManager alloc] init];
|
||
}
|
||
return _manager;
|
||
}
|
||
-(XPMineUserInfoHeaderTagView *)tagView{
|
||
if (!_tagView){
|
||
_tagView = [[XPMineUserInfoHeaderTagView alloc]initWithFrame:CGRectZero];
|
||
_tagView.delegate = self;
|
||
}
|
||
return _tagView;
|
||
}
|
||
- (UIStackView *)singStackView {
|
||
if (!_singStackView) {
|
||
_singStackView = [[UIStackView alloc] init];
|
||
_singStackView.backgroundColor = [UIColor clearColor];
|
||
_singStackView.axis = UILayoutConstraintAxisVertical;
|
||
_singStackView.distribution = UIStackViewDistributionFill;
|
||
_singStackView.alignment = UIStackViewAlignmentCenter;
|
||
_singStackView.spacing = 11;
|
||
}
|
||
return _singStackView;
|
||
}
|
||
- (NetImageView *)rechargeImageView{
|
||
if(!_rechargeImageView){
|
||
_rechargeImageView = [NetImageView new];
|
||
_rechargeImageView.image = [UIImage getLanguageImage:@"mine_info_recharge"];
|
||
_rechargeImageView.hidden = YES;
|
||
}
|
||
return _rechargeImageView;
|
||
}
|
||
- (NetImageView *)nobleImageView {
|
||
if (!_nobleImageView) {
|
||
_nobleImageView = [[NetImageView alloc] init];
|
||
// _nobleImageView.backgroundColor = [UIColor purpleColor];
|
||
_nobleImageView.hidden = YES;
|
||
}
|
||
return _nobleImageView;
|
||
}
|
||
|
||
- (UIStackView *)locateDateStackView {
|
||
if (!_locateDateStackView) {
|
||
_locateDateStackView = [[UIStackView alloc] init];
|
||
_locateDateStackView.backgroundColor = [UIColor clearColor];
|
||
_locateDateStackView.axis = UILayoutConstraintAxisHorizontal;
|
||
_locateDateStackView.distribution = UIStackViewDistributionEqualCentering;
|
||
_locateDateStackView.alignment = UIStackViewAlignmentCenter;
|
||
_locateDateStackView.spacing = 6;
|
||
}
|
||
return _locateDateStackView;
|
||
}
|
||
|
||
- (UILabel *)locateLabel {
|
||
if (!_locateLabel) {
|
||
_locateLabel = [[UILabel alloc] init];
|
||
_locateLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
||
_locateLabel.textColor = UIColorFromRGB(0x1a1a1a);
|
||
}
|
||
return _locateLabel;
|
||
}
|
||
|
||
- (UIImageView *)relationshipView {
|
||
if (!_relationshipView) {
|
||
_relationshipView = [[UIImageView alloc] init];
|
||
_relationshipView.image = [UIImage gradientColorImageFromColors:@[UIColorFromRGB(0x41EABA), UIColorFromRGB(0x26cc9c)]
|
||
gradientType:GradientTypeTopToBottom
|
||
imgSize:CGSizeMake(360, 55)];
|
||
_relationshipView.layer.cornerRadius = 14.5;
|
||
_relationshipView.layer.masksToBounds = YES;
|
||
_relationshipView.userInteractionEnabled = YES;
|
||
}
|
||
return _relationshipView;
|
||
}
|
||
|
||
- (UIView *)stackSpaceView {
|
||
return [UIView new];
|
||
}
|
||
|
||
- (UILabel *)fansNum {
|
||
if (!_fansNum) {
|
||
_fansNum = [[UILabel alloc] init];
|
||
_fansNum.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold];
|
||
_fansNum.textColor = [UIColor whiteColor];
|
||
}
|
||
return _fansNum;
|
||
}
|
||
|
||
- (UILabel *)followersNum {
|
||
if (!_followersNum) {
|
||
_followersNum = [[UILabel alloc] init];
|
||
_followersNum.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold];
|
||
_followersNum.textColor = [UIColor whiteColor];
|
||
}
|
||
return _followersNum;
|
||
}
|
||
|
||
- (SVGAImageView *)headWearSvgaImageView {
|
||
if (!_headWearSvgaImageView) {
|
||
_headWearSvgaImageView = [[SVGAImageView alloc]init];
|
||
_headWearSvgaImageView.backgroundColor = [UIColor clearColor];
|
||
_headWearSvgaImageView.frame = self.bounds;
|
||
_headWearSvgaImageView.userInteractionEnabled = YES;
|
||
_headWearSvgaImageView.autoPlay = YES;
|
||
}
|
||
return _headWearSvgaImageView;
|
||
}
|
||
|
||
@end
|