等级显示小控件
Posted 旅途
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了等级显示小控件相关的知识,希望对你有一定的参考价值。
等级控件效果图:
实现方式:
自定义小控件,通过frame来获取它的坐标,然后通过富文本的方式来实现不同文字,由于文字粗体和斜体要同时使用,所以通过富文本实现比较方便;
声明文件:
其中有两个方法,一个是初始化,一个是改变等级需要调用的方法;
#import <UIKit/UIKit.h>
@interface IDSLevelconView : UIImageView
@property (nonatomic, strong) UILabel *levelabel;
- (instancetype)initWithIconLevel:(NSInteger)level;
- (void)updateLevel:(NSInteger)level;
@end
@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'头像等级小工具'.html(false)