UILabel - 使用firstLineHeadIndent缩进多行

时间:2014-11-26 12:04:02

标签: ios xcode swift uiview uilabel

我一直想缩进一段的第一行。 我一直在使用firstLineHeadIndent如下:

    let comment_message_style = NSMutableParagraphStyle()
    comment_message_style.firstLineHeadIndent = 50.0
    comment_message_style.headIndent = 0.0   // Tried to force other lines to 0 indent
    var comment_message_indent = NSMutableAttributedString(string: "HELLO\nTest1\nTest Long Line so that it will break without adding the new line char to the string.")        
    comment_message_indent.addAttribute(NSParagraphStyleAttributeName, value: comment_message_style, range: NSMakeRange(0, comment_message_indent.length))
    self.commentMessageLabel.attributedText = comment_message_indent

但是,每当我运行模拟器时,缩进都适用于所有新行。 (见下面的截图) enter image description here

我正在使用最新版本的Xcode 6.1并在iOS 8.0上运行我的项目。

任何人都知道吗?

1 个答案:

答案 0 :(得分:0)

问题是Xcode无法识别第一行结束的位置,即使您使用了" \ n"而且我不知道为什么会这样。

然而另一种方法是替换

    var comment_message_indent = NSMutableAttributedString(string: "HELLO\nTest1\nTest Long Line so that it will break without adding the new line char to the string.")  

    var comment_message_indent = NSMutableAttributedString(string: "HELLO                        Test1\nTest Long Line so that it will break without adding the new line char to the string.")  

空格的长度=第一行的总字符数 - 5.

这应该做的工作,你的非第一行将正确缩进,你也不必添加headIndent。