新浪微博客户端(33)-显示头像上的认证类型

 

DJUser.h

复制代码
#import <Foundation/Foundation.h>

typedef enum {
    
    DJUserVerifiedTypeNone = -1,                // 没有任何认证
    DJUserVerifiedTypePersonal = 0,             // 个人认证
    DJUserVerifiedTypeOrgEnterprise = 2,        // 企业官方
    DJUserVerifiedTypeOrgMedia = 3,             // 媒体官方
    DJUserVerifiedTypeWebsite = 5,              // 网站官方
    DJUserVerifiedTypeDaren = 220               // 微博达人
    
} DJUserVerifiedType;

/** 微博用户 */
@interface DJUser : NSObject

/** 当前用户ID */
@property (nonatomic,copy) NSString *idstr;
/** 当前用户名 */
@property (nonatomic,copy) NSString *name;
/** 当前用户缩略图头像 */
@property (nonatomic,copy) NSString *profile_image_url;
/** 会员等级 */
@property (nonatomic,assign) int mbrank;
/** 会员类型(大于2代表是会员) */
@property (nonatomic,assign) int mbtype;
/** 是否是会员 */
@property (nonatomic,assign,getter=isVip) BOOL vip;
/** 认证类型 */
@property (nonatomic,assign) DJUserVerifiedType verified_type;

@end
复制代码

 

DJIconView.m

复制代码
//
//  DJIconView.m
//  微博
//
//  Created by 海月高 on 16/11/23.
//  Copyright © 2016年 yongdaimi. All rights reserved.
//  用户头像

#import "DJIconView.h"
#import "DJUser.h"
#import "UIImageView+WebCache.h"

@interface DJIconView()

@property (nonatomic,weak) UIImageView *verifiedView;

@end

@implementation DJIconView

- (UIImageView *)verifiedView {

    if (!_verifiedView) {
        UIImageView *verifiedView = [[UIImageView alloc] init];
        [self addSubview:verifiedView];
        _verifiedView = verifiedView;
    }
    return _verifiedView;
}



- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        
    }
    return self;
}




- (void)setUser:(DJUser *)user {

    _user = user;
    
    // 设置用户头像
    [self sd_setImageWithURL:[NSURL URLWithString:user.profile_image_url] placeholderImage:[UIImage imageNamed:@"avatar_default_small"]];
    
    // 设置用户类型
    switch (user.verified_type) {
        case DJUserVerifiedTypePersonal:      //个人认证
            self.verifiedView.hidden = NO;
            self.verifiedView.image = [UIImage imageNamed:@"avatar_vip"];
            break;
        case DJUserVerifiedTypeOrgEnterprise: // 企业官方
        case DJUserVerifiedTypeOrgMedia:      // 媒体官方
        case DJUserVerifiedTypeWebsite:       // 网站官方
            self.verifiedView.hidden = NO;
            self.verifiedView.image = [UIImage imageNamed:@"avatar_enterprise_vip"];
            break;
        case DJUserVerifiedTypeDaren:        //  微博达人
            self.verifiedView.hidden = NO;
            self.verifiedView.image = [UIImage imageNamed:@"avatar_grassroot"];
            break;
        default:
            self.verifiedView.hidden = YES;
            break;
    }
    

}



- (void)layoutSubviews {

    [super layoutSubviews];
    
    CGFloat scale = 0.6;
    
    self.verifiedView.size = self.verifiedView.image.size;
    self.verifiedView.x = self.width - self.verifiedView.width * scale;
    self.verifiedView.y = self.height - self.verifiedView.height * scale;
    
}



@end
复制代码

最终效果:

 

 



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   夜行过客  阅读(365)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示