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

时间:2016-04-10 13:06:26

标签: ios objective-c swift textkit

Medium iOS App Screenshot

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

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

提前致谢。

1 个答案:

答案 0 :(得分:5)

您不需要排除路径,因为不想将文字包裹在图像的形状周围。您只希望图像显示为其自己的居中段落。这意味着您需要在图片附件之前和之后换行(\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

结果:

example result