UILabel со слоем Угловой радиус И тень - PullRequest
1 голос
/ 26 апреля 2019

Я ищу способ отображения UILabel с layer.cornerRadius и layer.shadow.

Я понял, что с label.clipsToBounds = true будет установлен cornerRadius, а с label.masksToBounds = false будет отображаться тень

С обоими только тень, без угла, будет отображаться радиус

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"

Может кто-нибудь решить эту проблему, чтобы отобразились cornerRadius И shadow?

Ответы [ 3 ]

1 голос
/ 26 апреля 2019
    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
1 голос
/ 26 апреля 2019

Почему бы вам не попробовать добавить родительский элемент UIView для вашего ярлыка, который будет содержать цвет фона и cornerRadius.Затем сохраните свойства тени для метки

0 голосов
/ 26 апреля 2019
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
    }
}

Затем непосредственно назначьте класс setShadowOnLabel метке. enter image description here

enter image description here

...