码迷,mamicode.com
首页 > 其他好文 > 详细

等级显示小控件

时间:2017-07-25 21:21:37      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:ring   技术   orm   uila   tom   ati   div   log   ini   

等级控件效果图:

 

技术分享

 

 

实现方式:
 
自定义小控件,通过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 = [superinit]) {
        [
selfsetupView:level];
    }
   
returnself;
}


- (
void)setupView:(NSInteger)level
{
   
_levelabel = [[UILabelalloc] initWithFrame:CGRectMake(2, 0, 0, 0)];
   
   
   
NSMutableString * subtitlelabelStr = [NSMutableStringstringWithFormat:@"Lv%ld", level];
   
NSString *content = subtitlelabelStr;
   
NSMutableAttributedString *attributedString = [[NSMutableAttributedStringalloc] initWithString:content];
   
    [attributedString
setAttributes:@{NSForegroundColorAttributeName:NF_Color_C1,NSFontAttributeName:[UIFontboldSystemFontOfSize:Near_Final_Font_T12]}range:NSMakeRange(0, 2)];
    [attributedString
setAttributes:@{NSForegroundColorAttributeName:NF_Color_C1,NSFontAttributeName:[UIFontboldSystemFontOfSize:Near_Final_Font_T2]}range:NSMakeRange(2, [content length]-2)];
    [attributedString
addAttributes:@{NSObliquenessAttributeName:@0.2}range:NSMakeRange(0, [content length])];
    [
_levelabelsetAttributedText:attributedString];
    [
_levelabelsizeToFit];
   
   
if (level<=5) {
       
self.backgroundColor = NF_Color_C24;
    }
   
elseif (level<=10) {
       
self.backgroundColor = NF_Color_C27;
    }
   
elseif (level<=15) {
       
self.backgroundColor = NF_Color_C23;
    }
   
elseif (level<=20) {
       
self.backgroundColor = NF_Color_C5;
    }
    [
selfaddSubview:_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 = [NSMutableStringstringWithFormat:@"Lv%ld", level];
   
NSString *content = subtitlelabelStr;
   
NSMutableAttributedString *attributedString = [[NSMutableAttributedStringalloc] initWithString:content];
   
    [attributedString
setAttributes:@{NSForegroundColorAttributeName:NF_Color_C1,NSFontAttributeName:[UIFontboldSystemFontOfSize:Near_Final_Font_T12]}range:NSMakeRange(0, 2)];
    [attributedString
setAttributes:@{NSForegroundColorAttributeName:NF_Color_C1,NSFontAttributeName:[UIFontboldSystemFontOfSize:Near_Final_Font_T2]}range:NSMakeRange(2, [content length]-2)];
    [attributedString
addAttributes:@{NSObliquenessAttributeName:@0.2}range:NSMakeRange(0, [content length])];
    [
_levelabelsetAttributedText:attributedString];
    [
_levelabelsizeToFit];
   
   
if (level<=5) {
       
self.backgroundColor = NF_Color_C24;
    }
   
elseif (level<=10) {
       
self.backgroundColor = NF_Color_C27;
    }
   
elseif (level<=15) {
       
self.backgroundColor = NF_Color_C23;
    }
   
elseif (level<=20) {
       
self.backgroundColor = NF_Color_C5;
    }
   
_levelabel.centerX = self.frame.size.width/2;
   
_levelabel.centerY = self.frame.size.height/2;
}

@end
 

等级显示小控件

标签:ring   技术   orm   uila   tom   ati   div   log   ini   

原文地址:http://www.cnblogs.com/firstrate/p/7236207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!