Indent second line of UILabel (swift)

天涯浪子 提交于 2019-12-08 03:56:28

问题


var testLabel = UILabel(frame: CGRectMake(8,0,tableView.frame.width-8,100))
let testDesc = "dsfdddfdsfdsfsdfdsfdsfdsfdsfdsfsdfdsfsdfsdfdsfdsfdsfdsfdsfdsfdsfdsfdsfdsfdsfdsfdsf"
var labelString = indexString + ".    " + testDesc
testLabel.text = labelString
testLabel.lineBreakMode = .ByWordWrapping // or NSLineBreakMode.ByWordWrapping
testLabel.numberOfLines = 0
retCell.addSubview(testLabel)

My output:

1.    ksajdkasdsajdksajdksajd
asjdkjassadkasldkalsdklsakdl

How can make my output like the following:

1.    asdasdasdasdasdasdasds
      djaskdjsadjksadasjdjas

回答1:


Make an attributed string (NSMutableAttributedString) and set its paragraph style's firstLineHeadIndent and headIndent as desired. Now set the label's attributedText to that attributed string.




回答2:


Here is the code that I used

let paragraph = NSMutableParagraphStyle()
paragraph.firstLineHeadIndent = 0
paragraph.headIndent = 8 //You can change this to whatever indent you want

let mutString = NSAttributedString(
    string: "this is a test but I need this to be long so it flows onto multiple lines so I will keep going",
    attributes: [NSAttributedStringKey.paragraphStyle: paragraph]
)

mainLabel.attributedText = mutString


来源:https://stackoverflow.com/questions/39113803/indent-second-line-of-uilabel-swift

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!