2
votes

UILabel avec calque Rayon d'angle ET ombre

Je cherche un moyen d'afficher un UILabel avec layer.cornerRadius et layer.shadow .

J'ai compris , qu'avec label.clipsToBounds = true le cornerRadius sera défini et avec label.masksToBounds = false l'ombre sera affichée

Avec les deux seulement l'ombre, sans le cornerRadius sera affiché

let label = UILabel()
label.textAlignment = .center
label.font = UIFont.systemFont(ofSize: 32, weight: .regular)
label.textColor = .white
label.clipsToBounds = true
label.backgroundColor = Colors.Vibrants.softBlue
label.layer.cornerRadius = 50
label.layer.masksToBounds = false
label.layer.shadowColor = UIColor.black.cgColor
label.layer.shadowOffset = CGSize(width: 5, height: 5)
label.layer.shadowRadius = 5
label.layer.shadowOpacity = 0.7
label.text = "0"

Quelqu'un peut-il résoudre cela, de sorte que le cornerRadius ET le shadow sera affiché?


6 commentaires

Est-ce label label = UILabel () ou let label = UILabel () ?


Copie possible de Swift - Problèmes de rayon d'angle et d'ombre portée


@ 1 sry oui, copié mal: /


Où placez-vous son cadre?


@ EmreÖnder J'ai essayé de régler le rayon juste après avoir réglé le cadre et cela n'a pas fonctionné. avez-vous une solution pour cela?


Pouvez-vous s'il vous plaît l'essayer dans la mise en page


3 Réponses :


2
votes

Pourquoi n'essayez-vous pas d'ajouter un UIView parent pour votre étiquette qui contiendra la couleur d'arrière-plan et cornerRadius. Puis conservez les propriétés de l'ombre sur l'étiquette


0 commentaires

0
votes
class setShadowOnLabel: UILabel
{
    override func layoutSubviews()
    {
        self.layer.cornerRadius = 5
        self.layer.shadowColor = UIColor.lightGray.cgColor
        self.layer.shadowOffset = CGSize(width: 0.0, height: 0.2)
        self.layer.shadowOpacity = 0.80
        self.layer.shadowRadius = 5.0
        self.layer.masksToBounds = false
    }
}
Then directly assign setShadowOnLabel class to Label.

0 commentaires

2
votes
    label.layer.borderWidth = 0.2
    label.layer.borderColor = UIColor.clear.cgColor
    label.layer.shadowColor = UIColor.gray.cgColor
    label.layer.shadowOffset = CGSize(width: CGFloat(1.0), height: CGFloat(2.0))
    label.layer.shadowRadius = 1
    label.layer.shadowOpacity = 0.8
    label.layer.cornerRadius = 5.0
    label.layer.masksToBounds = false

0 commentaires