NSAttributedString实现图文混排
来源:互联网 发布:网络借贷暂行管理办法 编辑:程序博客网 时间:2024/05/22 00:15
NSMutableAttributedString富文本
在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求。以及一些直播界面中包含图片和字体的弹幕效果,大部分都是由NSMuttableAttstring(带属性的字符串)实现的。
一、简易使用方法
1、示例代码
fileprivate func addAttributeString() -> NSMutableAttributedString{ let time = "还剩 19 时 30 分 40 秒 开售" let timeAtt = NSMutableAttributedString(string: time) //字典中存放一些属性名和属性值 let timeDic = [NSFontAttributeName : UIFont.systemFont(ofSize: 18), NSForegroundColorAttributeName : UIColor.red, NSBackgroundColorAttributeName : UIColor.orange] //为某一范围内的文字设置多个属性 timeAtt.setAttributes(timeDic, range: NSMakeRange(2, 4)) //为某一范围内的文字添加单个属性 timeAtt.addAttribute(NSFontAttributeName, value: UIFont.systemFont(ofSize: 18), range: NSMakeRange(8, 4)) //为某一范围内的文字添加多个属性 timeAtt.addAttributes(timeDic, range: NSMakeRange(8, 4)) //为某一范围内的文字移除某个属性 timeAtt.removeAttribute(NSFontAttributeName, range: NSMakeRange(8, 4)) return timeAtt }
字符串处理
//拼接字符串timeAtt.append(NSAttributedString)//插入字符串timeAtt.insert(NSAttributedString, at: Int)//替换timeAtt.replaceCharacters(in: NSRange, with: NSAttributedString)timeAtt.replaceCharacters(in: NSRange, with: String)//删除timeAtt.removeAttribute(String, range: NSRange)
2、常见属性及说明
NSFontAttributeName 设置字体属性,默认值:字体:Helvetica(Neue) 字号:12NSForegroundColorAttributeNam 设置字体颜色,取值为 UIColor对象,默认值为黑色NSBackgroundColorAttributeName 设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明色NSLigatureAttributeName 设置连体属性,取值为NSNumber 对象(整数),0 表示没有连体字符,1 表示使用默认的连体字符NSKernAttributeName 设定字符间距,取值为 NSNumber 对象(整数),正值间距加宽,负值间距变窄NSStrikethroughStyleAttributeName 设置删除线,取值为 NSNumber 对象(整数)NSStrikethroughColorAttributeName 设置删除线颜色,取值为 UIColor 对象,默认值为黑色NSUnderlineStyleAttributeName 设置下划线,取值为NSNumber对象(整数),枚举常量NSUnderlineStyle中的值,与删除线类似NSUnderlineColorAttributeName 设置下划线颜色,取值为 UIColor 对象,默认值为黑色NSStrokeWidthAttributeName 设置笔画宽度,取值为 NSNumber 对象(整数),负值填充效果,正值中空效果NSStrokeColorAttributeName 填充部分颜色,不是字体颜色,取值为 UIColor 对象NSShadowAttributeName 设置阴影属性,取值为 NSShadow 对象NSTextEffectAttributeName 设置文本特殊效果,取值为 NSString 对象,目前只有图版印刷效果可用:NSBaselineOffsetAttributeName 设置基线偏移值,取值为 NSNumber (float),正值上偏,负值下偏NSObliquenessAttributeName 设置字形倾斜度,取值为 NSNumber (float),正值右倾,负值左倾NSExpansionAttributeName 设置文本横向拉伸属性,取值为 NSNumber (float),正值横向拉伸文本,负值横向压缩文本NSWritingDirectionAttributeName 设置文字书写方向,从左向右书写或者从右向左书写NSVerticalGlyphFormAttributeName 设置文字排版方向,取值为 NSNumber 对象(整数),0 表示横排文本,1 表示竖排文本NSLinkAttributeName 设置链接属性,点击后调用浏览器打开指定URL地址NSAttachmentAttributeName 设置文本附件,取值为NSTextAttachment对象,常用于文字图片混排NSParagraphStyleAttributeName 设置文本段落排版格式,取值为 NSParagraphStyle 对象
更多方法和属性说明详见苹果官方说明文档
二实现图文混排
效果如图
实例代码
//1,富文本字符串let attText = NSMutableAttributedString(string: "你好不好")attText.setAttributes([NSForegroundColorAttributeName : UIColor.orange], range: NSMakeRange(0, 4))//2,图片处理let attachment = NSTextAttachment()attachment.image = UIImage(named: "tt1")//3,计算文字高度let lineHeight = label.font.lineHeight//4,设置图片的显示大小attachment.bounds = CGRect(x: 0, y: 0, width: lineHeight, height: lineHeight)//5,图片转成富文本let picAtt = NSAttributedString(attachment: attachment)//6,插入到原字符串中attText.insert(picAtt, at: 2)
菜鸟一枚,文中如有不妥之处还望多多指正;互相学习共同进步!
喜欢的朋友可以点下喜欢,并关注下!
阅读全文
0 0
- NSAttributedString实现图文混排
- NSAttributedString实现图文混排
- NSAttributedString实现图文混排
- iOS-利用NSAttributedString实现图文混排
- 图文混排之NSAttributedString
- 基于NSAttributedString与正则表达式实现的图文混排
- NSAttributedString,简单图文混排,UITextKit
- NSAttributedString的21种属性详细介绍(图文混排)
- iOS图文并排demo,图文混排,UITextView图文显示,html转NSAttributedString
- 用NSAttributedString实现简单的图文混排-----(确实几个需要注意的地方都注意到了就好了。)
- 图文混排实现
- TextKit实现图文混排
- CoreText实现图文混排
- TextKit实现图文混排
- CoreText实现图文混排
- CoreText实现图文混排
- CoreText实现图文混排
- webView实现图文混排
- 本地项目提交到远程git
- DataTable统计遇到的几种问题
- 给你一台大疆无人机,你能用来做点啥?(二)-----——倾斜摄影建模
- xUtils3.3.x注解使用实例
- C#基础-055 字符串部分系统方法测试
- NSAttributedString实现图文混排
- 分而治之——快速排序(分割交换排序)
- 【002】Java语言的跨平台原理
- openssl 对称 非对称加密
- poj 1979 Red and Black 深搜
- DrawerLayout
- 循环结构和打印图形
- 名言警句
- 一致性Hash算法原理