Добавление UIView в качестве подпредставления к UIButton и вывод его на передний план не работает должным образом - PullRequest
0 голосов
/ 22 марта 2020

У меня есть UIButton, цвет фона белый.

@IBOutlet weak var buttonNewPost: UIButton! {
    didSet {
        buttonNewPost.layer.borderColor = UIColor(red:0.88, green:0.88, blue:0.88, alpha:1.0).cgColor
        buttonNewPost.layer.cornerRadius = 5
        buttonNewPost.backgroundColor = .white
    }
}

Я хочу добавить UIView, чтобы добавить тень к этой закругленной кнопке:

    let buttonShadow = UIView()
    buttonShadow.frame.size.width = buttonNewPost.layer.bounds.width
    buttonShadow.frame.size.height = buttonNewPost.layer.bounds.height
    buttonShadow.backgroundColor = .clear
    buttonShadow.dropShadowEdged = true
    buttonShadow.isUserInteractionEnabled = false
    buttonNewPost.addSubview(buttonShadow)
    buttonShadow.bringSubviewToFront(buttonNewPost)

Результат как это:

y

Почему кнопка UIB не находится спереди с белым цветом фона? Когда я изменяю цвет фона кнопки UIB на синий:

enter image description here

Почему это так? Я просто хочу белую кнопку с тенью

1 Ответ

0 голосов
/ 22 марта 2020

Вы можете применить тень непосредственно к UIButton: -

@IBOutlet weak var Btn: UIButton! {
        didSet {
            Btn.layer.borderColor = UIColor(red:0.88, green:0.88, blue:0.88, alpha:1.0).cgColor
            Btn.layer.cornerRadius = 5
            Btn.backgroundColor = .white
        }
    }

Добавить приведенный ниже код для Viewdidload: -

Btn?.layer.borderColor = UIColor.black.cgColor
Btn?.layer.borderWidth = 1.0
Btn?.layer.cornerRadius = 20.0
Btn?.layer.shadowOpacity = 0.5
Btn?.layer.shadowColor = UIColor.red.cgColor
Btn?.layer.shadowRadius = 5.0
Btn?.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)

После использования этого кода вы получите такой результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...