【发布时间】:2021-03-18 13:38:04
【问题描述】:
我正在尝试创建一个 Markdown 编辑器,因为我对学习 TextKit 很感兴趣。我只在 iOS 设备上工作,所以我只有 UIKit 框架可供我使用,我还看了这个WWDC18 video,它解释了一些与 TextKit 一起采用的最佳实践。起初,我真的很想知道如何获得与视频在 22:13 显示的结果相同的结果。
视频中的开发人员显示的代码使用了AppKit,并通过将代码部分替换为NSMutableParagraphStyle 并为后者提供自定义NSTextBlock,将代码包装在该矩形中。你可以猜到,我不能在UIKit 中继承NSTextBlock,因此我不能复制显示的示例。
不过,我有一个更难问的问题,我真正想要复制的是 GitHub 应用程序代码块样式,这是我想要复制的最终结果:
如您所见,它应该有一个带有自定义背景颜色的圆角矩形,并且它还需要可滚动以使代码根据需要展开(我对语法高亮不感兴趣)。
如果NSTextBlock 在UIKit 中不可用,我该如何实现这样的目标?
目前我所做的只是覆盖NSTextStorage 以使用自定义NSAttributedString 为代码部分设置正确的字体。
【问题讨论】:
-
可滚动功能似乎比较困难,但对于圆角框,使用 CoreText ,您也许可以在那里获得更多提示/想法:stackoverflow.com/questions/16362407/…
标签: uitextview nsattributedstring textkit nslayoutmanager nstextstorage