Ios 可以在NSAttribute字符串中混合不同的对齐方式吗?

Ios 可以在NSAttribute字符串中混合不同的对齐方式吗?,ios,swift,nsattributedstring,Ios,Swift,Nsattributedstring,我有一个关于NSMutableAttributedString或NSAttributedString的简单问题 是否可以执行以下操作。 假设我要显示的字符串是:Hello\nWorld 第一行你好第二行是世界 第一行Hello可以左对齐,第二行World可以右对齐吗? 如果答案是肯定的,我该怎么做?这可以通过使用NSParagraphStyle实现: 输出: @IBOutlet weak var label: UILabel! override func viewDidLoad() {

我有一个关于NSMutableAttributedString或NSAttributedString的简单问题

是否可以执行以下操作。 假设我要显示的字符串是:Hello\nWorld 第一行你好第二行是世界

第一行Hello可以左对齐,第二行World可以右对齐吗?
如果答案是肯定的,我该怎么做?

这可以通过使用NSParagraphStyle实现:

输出:

@IBOutlet weak var label: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let paragraphStyle1 = NSMutableParagraphStyle()
    paragraphStyle1.alignment = .left

    let paragraphStyle2 = NSMutableParagraphStyle()

    paragraphStyle2.alignment = .right

    let attrString = NSMutableAttributedString.init(string: "Hello \n World")

    if let range = attrString.string.range(of: "Hello") {
        let nsrange = attrString.string.nsRange(from: range)
        attrString.addAttributes([NSAttributedStringKey.paragraphStyle: paragraphStyle1], range: nsrange)
    }

    if let range = attrString.string.range(of: "World") {
        let nsrange = attrString.string.nsRange(from: range)
        attrString.addAttributes([NSAttributedStringKey.paragraphStyle: paragraphStyle2], range: nsrange)
    }

    self.label.textAlignment = .right
    self.label.attributedText = attrString
}