Skip to content

Commit

Permalink
1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
rztime committed Nov 15, 2021
1 parent b1b94eb commit 54287a6
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ RZRichTextView继承UITextView,实现富文本编辑功能。使用Swift完成

# 功能说明

支持的功能,可以查看demo。
UITextView的typingAttributes,会根据光标位置改变,自动改变成上一个文本的相关属性,在输入文字之后,会自动填充到新的文本中
文本操作分 插入,新增,删除,替换,就是对UITextView的attributedText的不断修改,然后设置正确的selectedRange


#### 1.关于[RZColorful](https://github.com/rztime/RZColorful) [RZColorfulSwift](https://github.com/rztime/RZColorfulSwift)
为方便Swift或者OC能够使用RZRichTextView,此次版本将RZColorful分开,将不在依赖,避免RZColorful RZColorfulSwift两个版本的冲突,需要使用时,按项目类型自行添加RZColorful,不了解RZColorful的功能的话,可以去看看[RZColorful](https://github.com/rztime/RZColorful)

Expand All @@ -72,17 +77,17 @@ class func creatWith(image: UIImage, asset: PHAsset? = nil) -> NSTextAttachment

`RZRichTextAttachment.swift`中给NSTextAttachment添加了一个属性**rzrt**: **RZRichAttachmentObj**,包含了**图片、PHAsset, Type信息,maskView**

maskView:图片上的遮罩View,与图片大小一直,添加在UITextView上,跟随图片在文本中的位置而改变,可以在maskView上添加删除、进度、播放、预览等自定义UI
maskView:图片上的遮罩View,与图片大小一致,添加在UITextView上,跟随图片在文本中的位置而改变,可以在maskView上添加删除、进度、播放、预览等自定义UI

#### 3.字体设置

> 1.**斜体字**:中文不支持斜体,所以可以找第三方支持中文的斜体字库来实现,原先通过`obliqueness`来实现的斜体,就是通过旋转字体来实现,但是在NSAttributedString与html互转时,无法互通,所以建议使用中文斜体字库来实现。[RZColorful](https://github.com/rztime/RZColorful)中codingToCompleteHtmlByWeb,就是通过旋转字体来实现斜体字,但是无法从html还原到NSAttributedString
> 2.**字体大小、颜色、高亮色、上下标(偏移)、描边、阴影、拉伸**:是对NSAttributedString.Key的使用
> 3.**列表(有序、无序)**:html中的ul、ol,这一个功能的实现逻辑比较复杂,并且iOS不支持,所以通过插入html里的《ul》《/ul》《ol》《/ol》,在**NSParagraphStyle**中设置NSTextList,并且为了连续,所以使用单利初始化了一个NSTextList,在整个编辑过程中,相邻两段,才能组成一个列表,且在编辑过程中,一些逻辑处理会很复杂,比如新的一段列表,未输入内容时,删除或者回车之后,需要把当前列给删掉,等等
> 3.**列表(有序、无序)**:html中的ul、ol,这一个功能的实现逻辑比较复杂,在iOS中不支持,属于私有API,这里通过插入html里的《ul》《/ul》《ol》《/ol》生成一个NSTextList,再在**NSParagraphStyle**复制引用NSTextList,为了能连续,整个过程使用单利初始化的NSTextList,这样在编辑过程中,相邻两段,才能组成一个列表。一些逻辑处理也比较复杂,可能不全面,目前处理的方式是,当新的一行未输入内容的,点按回车或者删除,这一行列表输入就将取消。如果有其他交互逻辑,可以反馈给我。
NSTextList在MacOS上支持,在iOS中并未公开,仅做私有属性,所以无法自行设置
NSTextList在MacOS上支持,在iOS中并未公开,仅做私有属性,所以无法自行设置,但是在设置html ul ol之后,打印NSParagraphStyle可以看到NSTextList的描述信息。

> 4.**插入url**:在插入url时,分了两种情况,1.插入图片或者文字,然后给图片文字添加链接,这样生成html的时候,url会隐藏,但是点击文字图片可以跳转。2.仅插入url,这样生成html时,url是当做文字同时显示并且可点击的
Expand Down
6 changes: 3 additions & 3 deletions UpdateLog.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
* v1.0.0

* 重构了一下,现在使用的是Swift,如果要在OC中使用,可以使用桥接引入,所有的属性和方法都是公开的,如果要自定义或者替换,都是可以的
* 整体重构,现在使用的是Swift,如果要在OC中使用,可以使用桥接引入,所有的属性和方法都是公开的,如果要自定义或者替换,都是可以的

***

* . 支持插入**图片、视频**,并且在NSAttachment中添加rzrt:可以设置相关的图片、视频信息,以及maskView遮罩,可以在maskView上添加删除,进度等自定义UI。maskView相当于是添加在UITextView上的覆盖NSAttachment并且和图片一样大小的遮罩
* . 支持插入**图片、视频**,并且在NSAttachment中添加rzrt:可以设置相关的图片、视频信息,以及maskView遮罩,可以在maskView上添加删除,进度等自定义UI。maskView相当于是添加在UITextView上的覆盖在NSAttachment上与图片一样大小的遮罩
* . **重新设置了滑动控件**的UI
* . **粗体、斜体、下划线、删除线**:因为中文不支持斜体,所以需要找第三方支持中文斜体字的字体才行,之前是设置obliqueness,这是相当于倾斜文字,这在于html互转时,无法实现,但是可以参考[RZColorfulSwift](https://www.github.com/RZColorfulSwift) `codingToCompleteHtmlByWeb` 这个方法来旋转字体。下划线删除线默认和文本颜色一致
* . **粗体、斜体、下划线、删除线**
* . 支持**列表** 也就是<ul, ol>
***

Expand Down

0 comments on commit 54287a6

Please sign in to comment.