I've added an NSMutableAttributedString to a CATextLayer. All of the attributes are applying except for the paragraphStyle. Any thoughts as to why?
Thanks for the help.
func createTextLayer() {
let textLayer = CATextLayer()
textLayer.frame = CGRect(x: view.center.x - 150, y: view.frame.size.height / 2, width: 300, height: 300)
let layerText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce auctor arcu quis velit congue dictum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce auctor arcu quis velit congue dictum."
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.firstLineHeadIndent = 10
paragraphStyle.headIndent = 10
paragraphStyle.tailIndent = 10
paragraphStyle.minimumLineHeight = 38
paragraphStyle.alignment = .center
let textAttributes: [NSAttributedStringKey : Any] = [
.font: UIFont(name: "HelveticaNeue-Bold", size: 18)!,
.foregroundColor: UIColor.white,
.backgroundColor: UIColor.black,
.baselineOffset: 10,
.paragraphStyle: paragraphStyle
]
textLayer.string = NSMutableAttributedString(string: layerText, attributes: textAttributes)
textLayer.backgroundColor = UIColor.clear.cgColor
textLayer.isWrapped = true
textLayer.contentsScale = UIScreen.main.scale
textView.layer.addSublayer(textLayer)
}
AFAIK CATextLayer
doesn't respect any paragraph style. You need a UITextView to display text with a paragraph style.
Edit:
And I guess you want
paragraphStyle.tailIndent = -10
Negative values means distance from the trailing margin.