当前位置: 首页 > news >正文

NSMutableAttributedString iOS 在UILabel显示不同的字体和颜色(转)

在项目开发中,我们经常会遇到在这样一种情形:在一个UILabel 使用不同的颜色或不同的字体来体现字符串,在iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的attributedText, 使用不同颜色和不同字体的字符串,我们可以使用NSAttributedText 和 NSMutableAttributedText 类来实现。

现实代码:


@interface ViewController : UIViewController
@property (nonatomic, strong) IBOutlet UILabel *attrLabel;
- (IBAction)next:(id)sender;
@end
 .m文件 在viewDidLoad方法中添加以下代码:


self.title = @"For iOS 6 & later";
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"Using NSAttributed String"];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0,5)];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(6,12)];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(19,6)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldItalicMT" size:30.0] range:NSMakeRange(0, 5)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:30.0] range:NSMakeRange(6, 12)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Courier-BoldOblique" size:30.0] range:NSMakeRange(19, 6)];
attrLabel.attributedText = str;
NSString *const NSForegroundColorAttributeName;//值为UIColor,字体颜色,默认为黑色。


NSString *const NSBackgroundColorAttributeName;//值为UIColor,字体背景色,默认没有。


NSString *const NSLigatureAttributeName;//值为整型NSNumber,连字属性,一般中文用不到,在英文中可能出现相邻字母连笔的情况。0为不连笔;1为默认连笔,也是默认值;2在ios 上不支持。


NSString *const NSKernAttributeName;//值为浮点数NSNumber,字距属性,默认值为0。


NSString *const NSStrikethroughStyleAttributeName;//值为整型NSNumber,可取值为


enum {


NSUnderlineStyleNone = 0×00,


NSUnderlineStyleSingle = 0×01,


};设置删除线。


NSString *const NSUnderlineStyleAttributeName;//同上。设置下划线。


NSString *const NSStrokeColorAttributeName;//值为UIColor,默认值为nil,设置的属性同ForegroundColor。


NSString *const NSStrokeWidthAttributeName;//值为浮点数NSNumber。设置比画的粗细。


NSString *const NSShadowAttributeName;//值为NSShadow,设置比画的阴影,默认值为nil。


NSString *const NSVerticalGlyphFormAttributeName;//值为整型NSNumber,0为水平排版的字,1为垂直排版的字。

 

转载于:https://www.cnblogs.com/niit-soft-518/p/4501107.html

相关文章:

  • 详解如何正确的搭建Linux的服务器集群
  • Java知识点陈列
  • sql server 复制表从一个数据库到另一个数据库
  • Java设计模式-工厂方法模式(Factory Method)
  • 【Win10】开发中的新特性及原有的变更
  • 2014年最新的辛星html、css教程打包公布了,免积分,纯PDF(还有PHP奥)
  • 代码添加控件-从数据库提取数据
  • ARM中的中断
  • 手势密码源码
  • java工程师联通XX面试题目
  • 连载《一个程序猿的生命周期》-15.老婆怀孕,养家压力,离职请求
  • Android动画效果translate、scale、alpha、rotate
  • 最少乘法次数 NYOJ 46
  • CSS+DIV网页样式与布局
  • struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 10个确保微服务与容器安全的最佳实践
  • CentOS从零开始部署Nodejs项目
  • github指令
  • Git同步原始仓库到Fork仓库中
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JS题目及答案整理
  • JS专题之继承
  • Next.js之基础概念(二)
  • node入门
  • Promise初体验
  • Redash本地开发环境搭建
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 检测对象或数组
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 码农张的Bug人生 - 初来乍到
  • 面试遇到的一些题
  • 你不可错过的前端面试题(一)
  • 数组的操作
  • 因为阿里,他们成了“杭漂”
  • 赢得Docker挑战最佳实践
  • 用Visual Studio开发以太坊智能合约
  • 阿里云重庆大学大数据训练营落地分享
  • #android不同版本废弃api,新api。
  • #Java第九次作业--输入输出流和文件操作
  • #pragam once 和 #ifndef 预编译头
  • $refs 、$nextTic、动态组件、name的使用
  • ()、[]、{}、(())、[[]]命令替换
  • (003)SlickEdit Unity的补全
  • (7)STL算法之交换赋值
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .net 获取url的方法
  • .net6使用Sejil可视化日志