如何为UIView控件+ iOS swift设置底部阴影

jhiyze9q  于 2023-01-29  发布在  Swift
关注(0)|答案(2)|浏览(234)

在问这个问题之前,我找到了很多关于堆栈溢出的答案,但没有一个适合我的情况。
要求:

我试过:

private func setShadow() {
    contentView.layer.masksToBounds = false
    contentView.layer.shadowOffset = CGSize(width: 0, height: 1.5)
    contentView.layer.shadowRadius = 0.5
    contentView.layer.shadowOpacity = 0.5
    layer.shadowColor = UIColor.lightGray.cgColor
}

我也玩偏移,半径,不透明度;我研究了每个属性,但是没有一个组合产生所需的输出。请给出任何建议。

w7t8yxp5

w7t8yxp51#

你可以通过静态图层来达到这个效果。

contentView.layer.masksToBounds = false

let shadowLayer = CALayer()
shadowLayer.frame = contentView.bounds
shadowLayer.shadowOffset = CGSize(width: 0, height: 1.5);
shadowLayer.shadowRadius = 0.5
shadowLayer.shadowOpacity = 0.5;
shadowLayer.shadowColor = UIColor.lightGray.cgColor
contentView.layer.addSublayer(shadowLayer)

如果使用自动排版,请记住在layoutSubviews中输入。

override func layoutSubviews() {
    super.layoutSubviews()
    shadowLayer.frame = contentView.bounds
}
ctehm74n

ctehm74n2#

更改阴影偏移,使其朝向底部。
阴影不透明度的最大值为1.0。(1.0 ==暗阴影,0.5亮阴影)
我试过了

private func setShadow() {
    viewShadow.layer.masksToBounds = false
    viewShadow.layer.shadowOffset = CGSize(width: 0, height: 6)
    viewShadow.layer.shadowRadius = 2.0
    viewShadow.layer.shadowOpacity = 0.5
    viewShadow.layer.shadowColor = UIColor.lightGray.cgColor
}

但产量仍不如预期。

相关问题