UIKitでMarkdown表示

botman_blue iOS

Xcode-14.0.1 iOS16

はじめに

iOS 15 から Markdown テキストを表示できるようになりました。AttributedString を使うので UILabelUITextView では使えないと思っていましたが NSAttributedString にも似たメソッドがあることに気づきました。こちらを使えば UIKit でも Markdown 表示できそうです。

実装

実装はかんたんで下記のようにすると UILabel に表示できます。

こんな感じ。

label

改行

改行したい場合は options に inlineOnlyPreservingWhitespace を指定します。

line

InterpretedSyntax には他にも下記があるようですがよくわかりませんでした。。。

AttributedString.MarkdownParsingOptions.InterpretedSyntax

case full

A syntax value that interprets the full Markdown syntax and produces all relevant attributes.

case inlineOnly

A syntax value that parses all Markdown text, but interprets only attributes that apply to inline spans.

case inlineOnlyPreservingWhitespace

A syntax value that parses all Markdown text, but interprets only attributes that apply to inline spans, preserving white space.

対応している記法

上記を試してみたところこんな感じでした。

markdown

取り消し線、強調、イタリック、リンク以外は対応していなさそうでした。

おわりに

Markdown 表示は SwiftUI しか無理だと思っていましたが UIKit でもできました!

参考

コメント

タイトルとURLをコピーしました