如何迅速删除某些iPhone中多余的黑色阴影,同时快速为UIView提供阴影?

问题描述 投票:0回答:1

我为三个视图提供了阴影。 iPhone 8 plus,iPhone 11,iPhone 11 pro max中的阴影完美呈现。如下所示

correct shadow

我在iPhone 8,iPhone 7 plus和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 plus的阴影中去除多余的黑色。

swift iphone uiview shadow
1个回答
2
投票

根据this answer,您可以使用参数创建扩展名:

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等有帮助。>

© www.soinside.com 2019 - 2024. All rights reserved.