这是一个富文本视图,文本中有多个图像(变体高度),每个图像位于两个段落之间。请参阅屏幕截图。
我知道Text Kit支持排除路径,是否可以基于此技术构建这样的富文本视图?如何在创建排除路径时确定图像的位置?
提前致谢。
答案 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
结果: