如何对齐右对齐UILabel?

时间:2017-09-28 07:06:07

标签: ios swift alignment uilabel

注:

实现:

<router-outlet (activate)="notifyChild()"></router-outlet>

解决了我的问题,这不是我要求的。


我想要达到的目的是让标签的对齐方式为 Right-Justify

更清晰:

myLabel.textAlignment = .right 对齐的样子:

enter image description here

这就是left对齐的样子:

enter image description here

如果您没有看到两个屏幕截图之间的任何差异,您可以通过标签的右侧(尾随)约束识别它,您将在第二个屏幕截图中注意到标签的整个宽度已被填充文本。

如第二个屏幕截图所示,默认情况下,让标签对齐会使其左对齐,即最后一行对齐为justify

如何让标签向右对齐?换句话说,我希望文本就像第二个屏幕截图一样,只是我希望最后一条短线向右移动。

如果你想知道做这种事情的目的是什么,那么从右到左语言是合适的。

2 个答案:

答案 0 :(得分:3)

感谢@user6788419提及appropriate answer

为实现这一目标,您应该使用NSMutableParagraphStyle

  

一个对象,可以更改a中子属性的值   段落样式属性。

它使您能够同时alignmentbaseWritingDirection,从而获得所需的输出:

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var lblDescription: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        let text: NSMutableAttributedString = NSMutableAttributedString(string: "In vertebrates, it is composed of blood cells suspended in blood plasma. Plasma, which constitutes 55% of blood fluid, is mostly water (92% by volume), and contains dissipated proteins...")

        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.alignment = .justified
        paragraphStyle.baseWritingDirection = .rightToLeft
        paragraphStyle.lineBreakMode = .byWordWrapping

        text.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSMakeRange(0, text.length))

        lblDescription.attributedText = text
    }
}

输出结果为:

enter image description here

答案 1 :(得分:0)

ENUM没有right justified可用!

您必须从NSTextAlignmentLeft,NSTextAlignmentRight,NSTextAlignmentCenter,NSTextAlignmentJustified,NSTextAlignmentNatural中选择。

您添加了xcode界面构建器的屏幕截图!一旦在模拟器或设备中检查它。

如果您希望标签中左侧或右侧的空格带有对齐的文字,那么您可以使用edge insets进行播放。

例如Left padding in label