Как убрать лишнюю черную тень на некоторых iPhone при одновременном выделении тени для UIView? - PullRequest
0 голосов
/ 13 января 2020

Я дал тень на три вида. И тень идеально подходит в iPhone 8 плюс, iPhone 11, iPhone 11 про макс. как показано ниже

correct shadow

У меня темный черный оттенок с правой стороны в iPhone 8, iPhone 7 плюс, iPhone 7 почему? как показано ниже

black colour

Как удалить черный цвет с правой стороны в iPhone8.

Ниже код для тени UIView:

firstContainerView.clipsToBounds = false
firstContainerView.layer.shadowColor = UIColor.black.cgColor
firstContainerView.layer.shadowOpacity = 1
firstContainerView.layer.shadowOffset = CGSize(width: 0.2, height: 0.2)
firstContainerView.layer.shadowRadius = 1
firstContainerView.layer.shadowPath = UIBezierPath(roundedRect: 
firstContainerView.bounds, cornerRadius: cornerRadius).cgPath

Почему в некоторых устройствах появляется дополнительная черная тень? Пожалуйста, помогите мне убрать лишний черный цвет из тени в iPhone 8, iPhone 7 плюс.

1 Ответ

2 голосов
/ 13 января 2020

согласно этому ответу вы можете создать расширение с вашими параметрами:

extension UIView {
    func addShadow() {
        layer.shadowColor = UIColor.black.cgColor
        layer.shadowOffset = CGSize(width: 0.2, height: 0.2)
        layer.shadowRadius = 1
        layer.shadowOpacity = 1
        layer.masksToBounds = false

        updateShadow()
    }
    func updateShadow() {
        layer.shadowPath = UIBezierPath(roundedRect: self.bounds,cornerRadius: 5).cgPath
    }
}

и назвать его в viewDidLayoutSubviews() как здесь

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    viewTest.addShadow()
}

Я надеюсь это поможет вам iPhone 7 и др. c.

...