Swift: тень не отображается при добавлении вида в окно - PullRequest
1 голос
/ 15 марта 2019

Я пытаюсь отбросить тень на свой customView, но он не отображается.Этот customView добавляется в окно с помощью window?.addSubview(customView).

. Реализация до сих пор:

//CustomView setup
lazy var customView: UIView = {
    let v = UIView()
    v.translatesAutoresizingMaskIntoConstraints = false
    v.layer.cornerRadius = 8
    v.layer.shadowColor = UIColor.darkGray.cgColor
    v.layer.shadowOffset = CGSize(width: 0, height: 10)
    v.layer.shadowOpacity = 10.5
    v.layer.shadowRadius = 15.0
    v.layer.masksToBounds = true
    return v
}()

//Adding view to window
window?.addSubview(customView)

NSLayoutConstraint.activate([
    customView.leadingAnchor.constraint(equalTo: window!.leadingAnchor),
    customView.trailingAnchor.constraint(equalTo: window!.trailingAnchor),
    customView.heightAnchor.constraint(equalTo: window!.heightAnchor, multiplier: 1),
    customView.topAnchor.constraint(equalTo: window!.safeAreaLayoutGuide.bottomAnchor, constant: -100)
        ])

Я следовал советам из этого поста и этого поста, но почему-то это не отображается для представлений, добавленных в окно.Любой совет, пожалуйста?Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Установите v.clipsToBounds = true и ПОСЛЕ что установите v.layer.masksToBounds = false

Ваш UIView должен выглядеть следующим образом:

lazy var customView: UIView = {
    let v = UIView()
    v.translatesAutoresizingMaskIntoConstraints = false
    v.layer.cornerRadius = 8
    v.layer.shadowColor = UIColor.darkGray.cgColor
    v.layer.shadowOffset = CGSize(width: 0, height: 10)
    v.layer.shadowOpacity = 10.5
    v.layer.shadowRadius = 15.0
    v.clipsToBounds = true
    v.layer.masksToBounds = false
    return v
}()

Примечание: Есть customView и commentView, убедитесь, что вы используете правильный.

0 голосов
/ 15 марта 2019

Это из-за этой строки:

v.layer.masksToBounds = true

Если вы хотите скруглить угол тени и , я бы предложил использовать два слоя, один с тенью и masksToBounds = false,и еще один, который является ребенком первого и имеет закругление угла + masksToBounds = true

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