等级显示小控件

等级控件效果图:

实现方式:

自定义小控件,通过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

时间: 2024-12-17 14:44:07

等级显示小控件的相关文章

Android UI设计之&lt;十一&gt;自定义ViewGroup,打造通用的关闭键盘小控件ImeObserverLayout

转载请注明出处:http://blog.csdn.net/llew2011/article/details/51598682 我们平时开发中总会遇见一些奇葩的需求,为了实现这些需求我们往往绞尽脑汁有时候还茶不思饭不香的,有点夸张了(*^__^*)--我印象最深的一个需求是在一段文字中对部分词语进行加粗显示.当时费了不少劲,不过还好,这个问题最终解决了,有兴趣的童靴可以看一下:Android UI设计之<六>使用HTML标签,实现在TextView中对部分文字进行加粗显示. 之前产品那边提了这样

如何在Android实现桌面清理内存简单Widget小控件

如何在Android实现桌面清理内存简单Widget小控件 我们经常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一键清理内存,杀死后台进程的功能,那么这个功能是如何实现的呢,我们今天也来尝试做一个类似的功能的小控件. 效果图: 一.UI部分的编写: 参照Google的文档,首先在建立一个类继承AppWidgetProvider import android.appwidget.AppWidgetProvider

桌面小控件的实例-----数字时钟

为了实现一个数字时钟的桌面组件,开发者需要在程序界面上定义8个ImageView,其中6个ImageView用于显示小时.分钟.秒钟的数字,另外两个ImageView用于显示小时.分钟.秒钟之间的冒号. 为了让桌面组件实时的显示当前时间,程序需要每个1秒更新一次程序界面上的6个ImageView,让它们显示当前小时.分钟.秒钟的数字即可. import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;

Winform开发框架之肖像显示保存控件的实现

我们在开发一些Winform程序的时候,除了常规的显示普通数据外,有的时候需要显示一些人员肖像或者一些车辆等物体的图片,一般这些内容较小,所以以二进制存储在数据库是一个不错的方案.但由于它们虽然很常用,设计数据库保存的逻辑又会使得整个控件的封装显得麻烦很多.本文介绍的肖像显示保存控件,通过事件的封装处理,让数据的保存不在依赖于数据库存储模块,实现更加通用的特性. 1.肖像显示保存控件的需求 我们在一些程序了里面,可能需要显示一些人员头像,车辆图片,物件图片等,这些图片可以从电脑上选取,也可以拍照

android中常用的小控件------Widgets的使用

好久没有写博客了,都不知博客怎么写了,最近突然想写博客,以帮助更多的人,却又不知道写什么好呢? 好吧  我承认我有点懒惰了,可是程序猿是不应该懒惰的哦,俺要做个好孩子. 好了言归正传,开始介绍下今天的主要内容吧! Widgets一个桌面的小控件    个人认为是很常用的,不知道大神们是不是这么觉得的呢?比如说你开发的一款音乐播放器的软件,可把基本的上一曲和下一曲.暂停的几个功能放在这个小控件里面将它显示在桌面上来,这样就很方便啦,你想要下一曲.上一曲.暂停播放的时候,就不用再打开播放器了,而是直

cesium编程入门(四)界面介绍及小控件隐藏

感性认识 界面介绍,viewer Geocoder : 查找位置工具,查找到之后会将镜头对准找到的地址,默认使用bing地图 Home Button :视角返回初始位置. Scene Mode Picker : 选择视角的模式,有三种:3D,2D,哥伦布视图(CV) Base Layer Picker : 图层选择器,选择要显示的地图服务和地形服务. Navigation Help Button :导航帮助按钮,显示默认的地图控制帮助. Animation : 动画器件,控制视图动画的播放速度.

javascript翻页小控件paginator

$(container).paginator({  totalrecords : totalRecords,  recordsperpage : recordsPerpage,  pagebtncount : pageBtnCount,  initval : currentPage,  next : '次へ',  prev : '前へ',  first : '',  last : '',  theme : '',  controlsalways : false,  onchange : func

过一定时间显示可用控件

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     <title></title>     <script type="text/ja

用按钮打开对话框选取图片按大小显示在控件中

[cpp] view plaincopy 打开按钮相应消息 [cpp] view plaincopy void CLoadBmpDlg::OnBtnOpenBmp() { // TODO: Add your control notification handler code here ////选取图片文件 [cpp] view plaincopy CFileDialog file_open_dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,"BMP Files(*.bmp)