CoderChick
CoderChick

Reputation: 232

Swift 5 Add alpha to UILabel with attributed text

I have a UILabel that incorporates two different strings/font via attributed text.

I would like to incorporate an alpha on the attrs2 of the UILabel. But leave the first part of the string with no alpha.

Code:

    private let titleLabel: UILabel = {
        let label = UILabel()
        label.textColor = .black
        label.textAlignment = .center
        let attrs1 = [NSAttributedString.Key.font : UIFont(name:"SFMono-Bold", size: 20)]

        let attrs2 = [NSAttributedString.Key.font : UIFont.sfMonoMedium(ofSize: 20)]

        let attributedString1 = NSMutableAttributedString(string:"Fast credit card\n payments", attributes:attrs1 as [NSAttributedString.Key : Any])

        let attributedString2 = NSMutableAttributedString(string:" using Square.", attributes:attrs2 as [NSAttributedString.Key : Any])

        attributedString1.append(attributedString2)
        label.attributedText = attributedString1

        return label
    }()

Pseudo:

let attrs2 = [NSAttributedString.Key.font : UIFont.sfMonoMedium(ofSize: 20), NSAttributedString.Key.font.alpha..... : 0.75]

or

attrs2.alpha = 0.75

Upvotes: 1

Views: 1033

Answers (1)

Tarun Tyagi
Tarun Tyagi

Reputation: 10102

You can do that with the .foregroundColor attribute.

let attrs2: [NSAttributedString.Key: Any] = [
    .font : UIFont.sfMonoMedium(ofSize: 20),
    .foregroundColor: UIColor.black.withAlphaComponent(0.5),
]

Upvotes: 3

Related Questions