如何使用 Text Kit 构建像 Medium iOS 应用程序这样的富文本视图?

How to build a rich text view like Medium iOS app using Text Kit?

这是一个富文本视图,文本中有多个图像(高度可变),每个图像都位于两个段落之间。请参考截图。

我知道Text Kit支持排除路径,是否可以基于这项技术构建这样的富文本视图?以及创建排除路径时如何确定图像的位置?

提前致谢。

您不需要排除路径,因为不想让文字环绕图像的形状。您只希望图像显示为它自己居中的段落。这意味着您需要在图像附件前后换行(\n),并且您需要在附件上设置带有alignment = .Center的段落样式。

示例:

import UIKit
import XCPlayground

let richText = NSMutableAttributedString(string: "Hello!\n")
let attachment = NSTextAttachment(data: nil, ofType: nil)
attachment.image = UIImage(named: "Kaz-256.jpg")
let imageText = NSAttributedString(attachment: attachment).mutableCopy() as! NSMutableAttributedString
let imageStyle = NSMutableParagraphStyle()
imageStyle.alignment = .Center
imageText.addAttribute(NSParagraphStyleAttributeName, value: imageStyle, range: NSMakeRange(0, imageText.length))
richText.appendAttributedString(imageText)
richText.appendAttributedString(NSAttributedString(string: "\nGoodbye."))


let textView = UITextView(frame: CGRectMake(0, 0, 320, 480))
textView.attributedText = richText
XCPlaygroundPage.currentPage.liveView = textView

结果: