在swift中为标签设置尾部缩进

时间:2017-09-13 02:59:38

标签: ios swift

我是iOS的初学者,我正在尝试制作数字键盘。我遇到的问题是,文本(数字显示)太靠近边框。如下图所示。

original numpad

我首先尝试在标签中使用attributedString而不是纯文本。但是将它设置为1会给我这个。即使将其设置为0.0000000001也没有任何区别。

bad numpad1 bad numpad2

这是我的配置

setting

由于此方法似乎不起作用,我接着尝试使用段落样式。这是我的代码

let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.tailIndent = -0.1
let attributes = [NSParagraphStyleAttributeName: paragraphStyle]

然后我意识到myLabel.attributedTextNSAttributedString,而不是NSMutableAttributableString,这意味着它没有addAttribute方法。我还没有办法让myLabel.attributedText成为NSMutableAttributableString。所以这对我不起作用。

问题

我的问题是,如何在标签中为我的文字提供正确的尾部缩进?

更新

我尝试过这个并不起作用。

@IBOutlet weak var display: UILabel! 
    didSet {
        let myString = display.attributedText!.string
        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.tailIndent = -0.0000000001
        let attributes = [NSParagraphStyleAttributeName: paragraphStyle]
        let myMutableAttributedString = NSMutableAttributedString(string: myString, attributes: attributes)

        display.attributedText = myMutableAttributedString
    }
}

给了我这个 new try

1 个答案:

答案 0 :(得分:1)

您可以在NSMutableAttributedString属性中使用attributedText,因为它是NSAttributedString的子类:

let myString = "0.01"
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.tailIndent = -0.1
let attributes = [NSParagraphStyleAttributeName: paragraphStyle]

let myMutableString = NSMutableAttributedString(
                         string: myString,
                         attributes: attributes)

然后在myLabel

myLabel.attributedText = myMutableString