NSAttributedString
2016-05-26 17:15
190 查看
要使Label上展示出如下图所示的时间,需使用 AttributedString 进行设置
![](http://img.blog.csdn.net/20160526182332621)
1.创建相应类方法
#import "VoodaGetTime.h"
@implementation VoodaGetTime
+(NSAttributedString *)getAttributeSleepTimeWithMinute:(NSString *)minute
{
int time = minute.intValue;
NSString *strSleep = [NSString
stringWithFormat:@"%d时%d分",time/60,time
%60];
// 通过要显示的文字内容来创建一个带属性样式的字符串对象
NSMutableAttributedString * result = [[NSMutableAttributedString
alloc]
initWithString:strSleep];
// 定义第一个文字样式字典
NSDictionary * attributesForFirstWord =
@{NSFontAttributeName: [UIFont
boldSystemFontOfSize:20.0f],
NSForegroundColorAttributeName:
RGBCOLOR(102,
126, 216)};
// 定义第二个文字样式字典
NSDictionary * attributesForSecWord =
@{NSFontAttributeName: [UIFont
systemFontOfSize:11.0f],
NSForegroundColorAttributeName:
RGBCOLOR(102,
126, 216)};
[result setAttributes:attributesForFirstWord
range:NSMakeRange(0, strSleep.length)];
[result setAttributes:attributesForSecWord
range:[strSleep rangeOfString:@"时"]];
[result setAttributes:attributesForSecWord
range:[strSleep rangeOfString:@"分"]];
return result;
}
@end
2.调用类方法
/** 获得睡眠一天的总数据 **/
VoodaDBBleModel *sleepDayModel = [dbOperation
getSleepDayData:sleepBleModel];
NSAttributedString *str = [[NSMutableAttributedString
alloc]
initWithString:@"0"];
lblShallowSleepTime.attributedText = sleepDayModel.light_sleep ? [VoodaGetTime
getAttributeSleepTimeWithMinute:sleepDayModel.light_sleep] : str;
lblDeepSleepTime.attributedText = sleepDayModel.deep_sleep ? [VoodaGetTime
getAttributeSleepTimeWithMinute:sleepDayModel.deep_sleep] : str;
lblAllSleepTime.attributedText = sleepDayModel.all_time_min ? [VoodaGetTime
getAttributeSleepTimeWithMinute:sleepDayModel.all_time_min] : str;
NSString *hours = sleepDayModel.all_time_min ? [NSString
stringWithFormat:@"%d",sleepDayModel.all_time_min.intValue /
60] : @"0";
NSString *minutes = sleepDayModel.all_time_min ? [NSString
stringWithFormat:@"%d",sleepDayModel.all_time_min.intValue %
60] : @"0";
float totalTime = hours.floatValue + minutes.floatValue/60;
if (totalTime >=
8.0) {
lblSleepLevel.text =
@"良好";
}else if (totalTime >=
5.0 && totalTime <
8.0){
lblSleepLevel.text =
@"正常";
}else{
lblSleepLevel.text =
@"差";
}
1.创建相应类方法
#import "VoodaGetTime.h"
@implementation VoodaGetTime
+(NSAttributedString *)getAttributeSleepTimeWithMinute:(NSString *)minute
{
int time = minute.intValue;
NSString *strSleep = [NSString
stringWithFormat:@"%d时%d分",time/60,time
%60];
// 通过要显示的文字内容来创建一个带属性样式的字符串对象
NSMutableAttributedString * result = [[NSMutableAttributedString
alloc]
initWithString:strSleep];
// 定义第一个文字样式字典
NSDictionary * attributesForFirstWord =
@{NSFontAttributeName: [UIFont
boldSystemFontOfSize:20.0f],
NSForegroundColorAttributeName:
RGBCOLOR(102,
126, 216)};
// 定义第二个文字样式字典
NSDictionary * attributesForSecWord =
@{NSFontAttributeName: [UIFont
systemFontOfSize:11.0f],
NSForegroundColorAttributeName:
RGBCOLOR(102,
126, 216)};
[result setAttributes:attributesForFirstWord
range:NSMakeRange(0, strSleep.length)];
[result setAttributes:attributesForSecWord
range:[strSleep rangeOfString:@"时"]];
[result setAttributes:attributesForSecWord
range:[strSleep rangeOfString:@"分"]];
return result;
}
@end
2.调用类方法
/** 获得睡眠一天的总数据 **/
VoodaDBBleModel *sleepDayModel = [dbOperation
getSleepDayData:sleepBleModel];
NSAttributedString *str = [[NSMutableAttributedString
alloc]
initWithString:@"0"];
lblShallowSleepTime.attributedText = sleepDayModel.light_sleep ? [VoodaGetTime
getAttributeSleepTimeWithMinute:sleepDayModel.light_sleep] : str;
lblDeepSleepTime.attributedText = sleepDayModel.deep_sleep ? [VoodaGetTime
getAttributeSleepTimeWithMinute:sleepDayModel.deep_sleep] : str;
lblAllSleepTime.attributedText = sleepDayModel.all_time_min ? [VoodaGetTime
getAttributeSleepTimeWithMinute:sleepDayModel.all_time_min] : str;
NSString *hours = sleepDayModel.all_time_min ? [NSString
stringWithFormat:@"%d",sleepDayModel.all_time_min.intValue /
60] : @"0";
NSString *minutes = sleepDayModel.all_time_min ? [NSString
stringWithFormat:@"%d",sleepDayModel.all_time_min.intValue %
60] : @"0";
float totalTime = hours.floatValue + minutes.floatValue/60;
if (totalTime >=
8.0) {
lblSleepLevel.text =
@"良好";
}else if (totalTime >=
5.0 && totalTime <
8.0){
lblSleepLevel.text =
@"正常";
}else{
lblSleepLevel.text =
@"差";
}
相关文章推荐
- C# 读取Excel文件里面的内容到DataSet
- 【51】java设计模式-工厂设计模式剖析
- 【51】java设计模式-工厂设计模式剖析
- yii2入门实例
- WCF添加服务失败一则
- SSRF安全威胁在JAVA代码中的应用
- JSP页面EL表达式不起效果
- soot代码分析框架的基础知识(二)
- 教师兼干部类
- Caffe在Cifar10上复现ResNet
- Background Modes in iOS Tutorial
- Java版的Redis
- linux三尖刀
- HDU_1023_Train Problem II_卡特兰数
- C++模板类的使用
- Stack的三种含义
- Adnroid ndk 中jni访问java方法、对象、成员变量
- C H A P T E R 2 9 Building a Web Services Client 29章构建一个Web Services 客户端
- 排序算法(一)---快速插入排序
- PHP无乱码截取中文字符串