很遗憾,我们未能找到外部贡献者。 欢迎随意 fork 这个项目。 如果有 fork 流行起来,请在我们的
上给我们留言,我们可以考虑在本 README 中添加一个指向新项目的链接。
只需将以下内容添加到您的 Podfile
pod 'RichTextView'
并在您的仓库中运行 pod install
。
只需将以下内容添加到您的 Cartfile
github "tophat/RichTextView"
并在您的仓库中运行 carthage update --platform iOS
。
您可以通过首先导入项目来实例化一个 RichTextView
import RichTextView
初始化 RichTextView
let richTextView = RichTextView(
input: "Test",
latexParser: LatexParser(),
font: UIFont.systemFont(ofSize: UIFont.systemFontSize),
textColor: UIColor.black,
isSelectable: true,
isEditable: false,
latexTextBaselineOffset: 0,
interactiveTextColor: UIColor.blue,
textViewDelegate: nil,
frame: CGRect.zero,
completion: nil
)
您也可以按如下方式更新现有的 RichTextView
richTextView.update(
input: "Test",
latexParser: LatexParser(),
font: UIFont.systemFont(ofSize: UIFont.systemFontSize),
textColor: UIColor.black,
latexTextBaselineOffset: 0,
interactiveTextColor: UIColor.blue,
completion: nil
)
参数定义如下
input
- 您要渲染的字符串latexParser
- 如果您想以自定义方式处理 LaTeX 解析,您可以传递您自己的符合 LatexParserProtocol
协议的类。目前我们默认使用 iosMath
Pod 来处理 LaTeX 解析font
- 要渲染的文本的字体texColor
- 要渲染的文本的颜色isSelectable
- 一个属性,用于确定 RichTextView
是否可选中isEditable
- 一个属性,用于确定 RichTextView
是否可编辑latexTextBaselineOffset
- 属性化文本附件的基线偏移量,该附件表示任何需要渲染的 LaTeX 文本interactiveTextColor
- 任何交互式元素/自定义链接的文本颜色(请参阅 Formatting the input
中的 交互式元素)textViewDelegate
- 一个 RichTextViewDelegate
- 符合 UITextViewDelegate
协议,并且在点击交互式元素/自定义链接时也有处理frame
- 一个 CGRect
,表示 RichTextView
的框架completion
- 一个完成块,用于处理可能返回的任何错误。即使存在错误,输入仍然会渲染,但它可能看起来与预期不同。为了使 RichTextView
能够处理可能遇到的各种用例,输入字符串需要按如下方式格式化
[math]
和 [/math]
标签之间。 示例:[math]x^n[/math]
[code]
和 [/code]
标签之间。 示例:[code]print('Hello World')[/code]
youtube[dQw4w9WgXcQ]
。 任何视频的 YouTube ID 都可以通过查看视频的 URL(示例:https://www.youtube.com/watch?v=dQw4w9WgXcQ
)并获取 v=
URL 参数后面的值来找到。 在这种情况下,YouTube 视频的 ID 是 dQw4w9WgXcQ
vimeo[100708006]
。 任何视频的 Vimeo ID 都可以通过查看视频的 URL(示例:https://vimeo.com/100708006
)并获取第一个 /
后面的值来找到。 在这种情况下,Vimeo 视频的 ID 是 100708006
[interactive-element id=<id>]
和 [/interactive-element]
标签之间。 这样做后,当用户点击此文本时,它将使用代表交互式元素的文本 ID (<id>
) 调用 RichTextViewDelegate
的 didTapCustomLink
函数,因此请务必连接到 RichTextViewDelegate
以捕获此内容。查看 Example
根目录中的示例项目,以查看上面截图的实际效果!
只需克隆仓库,运行 pod install
,您就可以开始了
如果您想以可视方式进行 devQA 更改,您可以导航到示例项目(位于根目录 Example
文件夹中),运行 pod install
,然后构建并运行该应用程序。 这将向您展示 RichTextView
的一些常用用法。
示例项目指向 RichTextView
pod 的本地副本,因此本地进行的任何更改都将反映在示例项目中。
但是,您需要使用旧的构建系统才能看到您的更改反映出来。 关于缓存开发 Pods 和 XCode 10,存在一个已知问题。
欢迎随意向示例项目添加更多输入/输出示例,尤其是在您添加任何新功能时。
此外,请务必在本地运行单元/UI 测试,作为 devQA 过程的一部分。
感谢这些优秀的人们(表情符号键)
Ahmed Elkady 💻 🤔 |
Orla Mitchell 💻 🤔 👀 |
Jake Bolam 🚇📖 |
Sanchit Gera 📖 |
---|---|---|---|
Monica Moore 🎨 |
Brandon Baksh 📖 |
Siavash Bidgoly 🚇 |
Stephen Truong 📖 |
感谢 Carol Skelly 捐赠 Github 组织,以及 Kevin Zhow 捐赠 Pod 名称!