问题
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