我为三个视图提供了阴影。 iPhone 8 plus,iPhone 11,iPhone 11 pro max中的阴影完美呈现。如下所示
我在iPhone 8,iPhone 7 plus和iPhone 7的右侧都出现深黑色阴影,为什么?如下所示
如何在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的阴影中去除多余的黑色。
根据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等有帮助。>