iOS UILabel利用NSMutableString显示不同样式的文字
来源:互联网 发布:dnf哪个图数据芯片最多 编辑:程序博客网 时间:2024/06/16 18:04
*在开发时,有时需要在同一个label中设置不同大小、不同颜色的文字,下面就对这种情况介绍一下具体解决办法
一、显示效果
二、原理说明
UILabel有一个属性是 attributedText
*注意这个属性的注释,如果添加 attributedText 后,上面的其它属性将会被忽略,也就是 text、font、textColor、shadowColor、shadowOffset、textAlignment、lineBreakMode
如需要设置这些属性、需要在添加attributedText后设置。
三、代码
NSMutableAttributedString 是可以通过range设置多种颜色和字体大小的,这里通过UILabel 和 NSMutableAttributedString一起使用达到在同一个label中显示不同颜色和字体的文字。
1、NSMutableAttributedString设置颜色方法:
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor purpleColor] range:NSMakeRange(1, 1)];
2、NSMutableAttributedString设置字体方法:
[attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:20] range:NSMakeRange(1, 1)];
3、NSMutableAttributedString设置行间距方法:
NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; [paragraphStyle setLineSpacing:20]; [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attributedString.length)];
4、下面是具体例子
-(void)addColorFulLabel{ UILabel* label = [[UILabel alloc] initWithFrame:self.view.bounds]; label.center = self.view.center; [self.view addSubview:label]; NSArray *colorNames = @[@"红色",@"橙色",@"黄色",@"绿色",@"蓝色",@"\n这是一个有意思的UILabel"]; //预设颜色 NSArray *colors = @[[UIColor redColor],[UIColor orangeColor],[UIColor yellowColor],[UIColor greenColor],[UIColor blueColor],[UIColor blackColor]]; //预设字体大小 NSArray *fonts = @[[UIFont systemFontOfSize:20],[UIFont systemFontOfSize:30],[UIFont systemFontOfSize:20],[UIFont systemFontOfSize:30],[UIFont systemFontOfSize:20],[UIFont systemFontOfSize:15]]; //创建 NSString NSString *string = @""; for (NSString *name in colorNames) { string = [string stringByAppendingString:name]; if ([name isEqualToString:colorNames.lastObject]) {break;} string = [string stringByAppendingString:@"/"]; } //创建 NSMutableAttributedString NSMutableAttributedString* attributedString = [[NSMutableAttributedString alloc] initWithString:string]; NSArray *arr = [string componentsSeparatedByString:@"/"]; for (NSInteger i = 0; i<arr.count; i++) { NSRange range = [string rangeOfString:arr[i]]; /** 设置字体/颜色(简单的设置大小、颜色通过这两行代码即可) */ [attributedString addAttribute:NSFontAttributeName value:fonts[i] range:range]; [attributedString addAttribute:NSForegroundColorAttributeName value:colors[i] range:range]; } //行间距: NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineSpacing:20]; [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attributedString.length)]; label.attributedText = attributedString; //设置居中需要在添加attributedText设置 label.textAlignment = NSTextAlignmentCenter; label.numberOfLines = 2;}
0 0
- iOS UILabel利用NSMutableString显示不同样式的文字
- UILabel上展示不同样式的文字(NSAttributedString)
- ios UILabel显示不同颜色的文字
- iOS 在一个UILabel里显示不同的颜色,给文字加下划线
- iOS 在一个UILabel里显示不同的颜色,给文字加下划线
- iOS UILabel显示文字设置不同的颜色以及行间距
- iOS巅峰之UILabel上显示不同的字体样式和颜色
- iOS UILabel 文字竖排显示
- iOS中的UIlabel在html中显示文字(特殊字符显示为&hellip,¥等样式)
- iOS开发笔记--UILabel显示不同的字体和颜色
- iOS 在UILabel显示不同的字体和颜色
- iOS 在UILabel显示不同的字体和颜色
- iOS 在UILabel显示不同的字体和颜色(转)
- iOS 在UILabel显示不同的字体和颜色
- iOS 在UILabel显示不同的字体和颜色
- iOS开发笔记--UILabel显示不同的字体和颜色
- iOS 在UILabel显示不同的字体和颜色
- iOS 在UILabel显示不同的字体和颜色(转)
- java中Set使用介绍
- Windows 环境下配置MXNET教程
- 软件开发环境的配置
- 解决应用崩溃后,提示应用异常问题,只是取消提示。
- IBM X服务器BIOS 使用说明
- iOS UILabel利用NSMutableString显示不同样式的文字
- Struts2学习——(八)Struts2标签II
- ASP LyfUpload组件的用法
- 保留四位有效小数
- Java学习笔记-Static修饰符用法
- DM9000网卡驱动源码分析系列03 - probe && remove
- Eclipse注释模板
- webserver添加soap认证
- hdu5556 2015ACM合肥现场赛题 二分图最大独立集