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é?
3 Réponses :
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
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.
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
Est-ce
label label = UILabel ()
oulet 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