2014-11-26 3 views
0

Мне было нужно отступать только в первой строке абзаца. Я использую firstLineHeadIndent следующим образом: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.

Любая идея кого-нибудь?

ответ

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.

+0

К сожалению, ваше решение не работает для меня. Мне пришлось удалить все пробелы на обоих концах строки. Не совсем то, что я хотел, но я в порядке. Спасибо за ваше время – fabdarice

Смежные вопросы