iOS图文混排: 1、封装富文本API,采用block实现链式编程 2、HTML与富文本互转 3、带图片和超链接的富文本【修订】

简介: iOS图文混排: 1、封装富文本API,采用block实现链式编程 2、HTML与富文本互转 3、带图片和超链接的富文本【修订】

引言

原文:

https://kunnan.blog.csdn.net/article/details/114014827

I、封装富文本API,采用block实现链式编程

iOS开发效率工具:完整SDK源码【封装富文本API,采用block实现链式编程】(block 的妙用:结合block和方法的优点实现iOS的链式编程)

1、文章:https://blog.csdn.net/z929118967/article/details/107835195

iOS封装富文本API,采用block实现链式编程(结合block和方法的优点实现iOS的链式编程)【修订版】

2、从CSDN资源下载完整SDK代码:https://download.csdn.net/download/u011018979/14038715

  • 部分API

image.png

  • 用法例子
NSMutableAttributedString *xx  = [[NSMutableAttributedString alloc]init];
    xx.kn_addString(@"封装富文本API").kn_fontColor(UIColor.redColor).kn_addString(@"采用block实现链式编程").kn_fontColor(UIColor.blueColor).kn_addString(@"!");

image.png

II、超链接属性的应用案例

  • iOS 自定义视图:《用户协议及隐私政策》弹框(包含超链接属性)【本文包含完整demo源码,demo支持中英文切换】

1、文章:https://blog.csdn.net/z929118967/article/details/103902362

iOS 《用户协议及隐私政策》弹框:包含超链接属性(本文包含完整demo源码,demo支持中英文切换)【修订版】

2、从csdn资源下载demo源码:https://download.csdn.net/download/u011018979/14026773

3、效果

image.png

image.png

4《用户协议及隐私政策》 弹框的实现步骤:

4.1、自定义TextView,采用富文本属性进行内容设置attributedText(包括下划线NSUnderlineStyleSingle、超链接NSLinkAttributeName 、颜色NSForegroundColorAttributeName 等信息)

4.2、实现代理方法textView:shouldInteractWithURL:inRange,处理点击超链接的回调(打开对应URL Webview)

III、HTML字符串与富文本互转

  • html->NSAttributedString
NSString *html = @"<p style='color:green'>博客<span style='color:#e83c36;'><a>https://kunnan.blog.csdn.net/<a/></span><br/>微信公众号:<span style='color:red'>iOS逆向</span><br/>“订阅”一次 ,享受终身服务的快乐。</br><span style='color:red'>专注《iOS应用逆向与安全》</span>(包括iOS基础)</p>";
    NSAttributedString *attStr = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];

IV、创建带有图片的富文本

iOS图文混排之【 NSAttachmentAttributeName 创建带有图片的富文本】(案例:展示信用卡标签)

1、文章:https://kunnan.blog.csdn.net/article/details/117733632

iOS创建带有图片的富文本(案例:展示信用卡标签)

2、原理:使用NSAttachmentAttributeName属性设置文本附件功能来插入图片使用NSTextAttachment对象

3、应用场景:展示信用卡标签

image.png

V、富文本在适配系统API的应用例子

5.1 适配iOS13UI控件UITextField的_placeholderLabel  私有API

  • 问题:iOS13无法直接访问_placeholderLabel.textColor
  • 解决方案:使用 NSMutableAttributedString 富文本attributedPlaceholder来替代KVC访问 UITextField 的 _placeholderLabel。
+ (void)setupUITextField4attributedPlaceholder:(UITextField*)textField{
    textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"placeholder" attributes:@{NSForegroundColorAttributeName:kTextPlaceholderColor, NSFontAttributeName:kTextFont(13) }]; 
}



see also

属性

属性 用途 类型
NSFontAttributeName 字号 UIFont 默认12
NSParagraphStyleAttributeName 段落样式 NSParagraphStyle
NSForegroundColorAttributeName 前景色 UIColor
NSBackgroundColorAttributeName 背景色 UIColor
NSObliquenessAttributeName 字体倾斜 NSNumber
NSExpansionAttributeName 字体加粗 NSNumber 比例 0就是不变 1增加一倍
NSKernAttributeName 字间距 CGFloat
NSUnderlineStyleAttributeName 下划线 1或0
NSUnderlineColorAttributeName 下划线颜色 UIColor
NSStrikethroughStyleAttributeName 删除线 1或0
NSStrikethroughColorAttributeName 删除线颜色 UIColor
NSStrokeColorAttributeName same as ForegroundColor UIColor
NSStrokeWidthAttributeName 字体描边 CGFloat
NSLigatureAttributeName 连笔字 1或0
NSShadowAttributeName 阴影 NSShawdow
NSTextEffectAttributeName 设置文本特殊效果,目前只有图版印刷效果可用 NSString
NSAttachmentAttributeName 设置文本附件,常用插入图片 NSTextAttachment
NSLinkAttributeName 链接 NSURL (preferred) or NSString
NSBaselineOffsetAttributeName 基准线偏移 NSNumber,可用于布局
NSWritingDirectionAttributeName 文字方向 分别代表不同的文字出现方向@[@(1),@(2)]
NSVerticalGlyphFormAttributeName 水平或者竖直文本 1竖直 0水平

目录
相关文章
|
7月前
|
小程序 JavaScript 数据库
小程序解析富文本html内容
小程序解析富文本html内容
|
4月前
|
API Python
【Azure Developer】AAD API如何获取用户“Block sign in”信息(accountEnabled)
【Azure Developer】AAD API如何获取用户“Block sign in”信息(accountEnabled)
|
7月前
|
移动开发
uni-app使用v-html输出富文本图片溢出解决
uni-app使用v-html输出富文本图片溢出解决
712 1
|
6月前
|
JSON PHP 数据格式
php 富文本双引号问题,将双引号变为&quot;html转义入库
php 富文本双引号问题,将双引号变为&quot;html转义入库
82 0
|
7月前
|
iOS开发
iOS中如何显示后台返回的带有html标签的富文本字符串
iOS中如何显示后台返回的带有html标签的富文本字符串
71 0
|
7月前
|
移动开发 Android开发 iOS开发
ios标准页面调用HTML5页面和HTML5调用ios的函数
ios标准页面调用HTML5页面和HTML5调用ios的函数
53 0
|
7月前
|
JSON 资源调度 小程序
一个强大的小程序富文本组件mp-html
一个强大的小程序富文本组件mp-html
284 0
|
7月前
|
缓存 JSON API
IOS网络编程:什么是 RESTful API?如何使用 RESTful 风格设计 API?
IOS网络编程:什么是 RESTful API?如何使用 RESTful 风格设计 API?
187 3
fastadmin框架获取富文本内容(不过滤HTML标签)
fastadmin框架获取富文本内容(不过滤HTML标签)
339 0
|
iOS开发
iOS block修饰符用copy还是strong
iOS block修饰符用copy还是strong
170 0