等级显示小控件

等级控件效果图:

 

DAE73EAE 24D9 4400 A97B E7F5F6467B66

 

 

实现方式:
 
自定义小控件,通过frame来获取它的坐标,然后通过富文本的方式来实现不同文字,由于文字粗体和斜体要同时使用,所以通过富文本实现比较方便;
 
声明文件:
 
其中有两个方法,一个是初始化,一个是改变等级需要调用的方法;
 
#import <UIKit/UIKit.h>

@interface IDSLevelconView : UIImageView

@property ( nonatomic , strong ) UILabel *levelabel;

- (
instancetype )initWithIconLevel:( NSInteger )level;

- (
void )updateLevel:( NSInteger )level;

@end
 
 
实现代码
 

#import "IDSLevelconView.h"

@implementation IDSLevelconView

- (
instancetype )initWithIconLevel:( NSInteger )level
{
   
   
if ( self = [ super init ]) {
        [
self setupView :level];
    }
   
return self ;
}


- (
void )setupView:( NSInteger )level
{
   
_levelabel = [[ UILabel alloc ] initWithFrame : CGRectMake ( 2 , 0 , 0 , 0 )];
   
   
   
NSMutableString * subtitlelabelStr = [ NSMutableString stringWithFormat : @"Lv%ld" , level];
   
NSString *content = subtitlelabelStr;
   
NSMutableAttributedString *attributedString = [[ NSMutableAttributedString alloc ] initWithString :content];
   
    [attributedString
setAttributes : @{ NSForegroundColorAttributeName : NF_Color_C1 , NSFontAttributeName :[ UIFont boldSystemFontOfSize : Near_Final_Font_T12 ] } range : NSMakeRange ( 0 , 2 )];
    [attributedString
setAttributes : @{ NSForegroundColorAttributeName : NF_Color_C1 , NSFontAttributeName :[ UIFont boldSystemFontOfSize : Near_Final_Font_T2 ] } range : NSMakeRange ( 2 , [content length ]- 2 )];
    [attributedString
addAttributes : @{ NSObliquenessAttributeName : @0.2} range : NSMakeRange ( 0 , [content length ])];
    [
_levelabel setAttributedText :attributedString];
    [
_levelabel sizeToFit ];
   
   
if (level<= 5 ) {
       
self . backgroundColor = NF_Color_C24 ;
    }
   
else if (level<= 10 ) {
       
self . backgroundColor = NF_Color_C27 ;
    }
   
else if (level<= 15 ) {
       
self . backgroundColor = NF_Color_C23 ;
    }
   
else if (level<= 20 ) {
       
self . backgroundColor = NF_Color_C5 ;
    }
    [
self addSubview : _levelabel ];
   
self . frame = CGRectMake ( 0 , 0 , 35 , 14 );
   
_levelabel . centerX = self . frame . size . width / 2 ;
   
_levelabel . centerY = self . frame . size . height / 2 ;
   
self . layer . cornerRadius = self . frame . size . height / 2 ;
   
self . layer . masksToBounds = YES ;
}

- (
void )updateLevel:( NSInteger )level
{
   
NSMutableString * subtitlelabelStr = [ NSMutableString stringWithFormat : @"Lv%ld" , level];
   
NSString *content = subtitlelabelStr;
   
NSMutableAttributedString *attributedString = [[ NSMutableAttributedString alloc ] initWithString :content];
   
    [attributedString
setAttributes : @{ NSForegroundColorAttributeName : NF_Color_C1 , NSFontAttributeName :[ UIFont boldSystemFontOfSize : Near_Final_Font_T12 ] } range : NSMakeRange ( 0 , 2 )];
    [attributedString
setAttributes : @{ NSForegroundColorAttributeName : NF_Color_C1 , NSFontAttributeName :[ UIFont boldSystemFontOfSize : Near_Final_Font_T2 ] } range : NSMakeRange ( 2 , [content length ]- 2 )];
    [attributedString
addAttributes : @{ NSObliquenessAttributeName : @0.2} range : NSMakeRange ( 0 , [content length ])];
    [
_levelabel setAttributedText :attributedString];
    [
_levelabel sizeToFit ];
   
   
if (level<= 5 ) {
       
self . backgroundColor = NF_Color_C24 ;
    }
   
else if (level<= 10 ) {
       
self . backgroundColor = NF_Color_C27 ;
    }
   
else if (level<= 15 ) {
       
self . backgroundColor = NF_Color_C23 ;
    }
   
else if (level<= 20 ) {
       
self . backgroundColor = NF_Color_C5 ;
    }
   
_levelabel . centerX = self . frame . size . width / 2 ;
   
_levelabel . centerY = self . frame . size . height / 2 ;
}

@end
 

转载于:https://www.cnblogs.com/firstrate/p/7236207.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值