菜鸟教程小白 发表于 2022-12-12 13:25:43

ios - 用 CAShapeLayer 添加阴影?


                                            <p><p>我有一个只有底部圆角的<code>CAShapeLayer</code>。我想要的是在底部添加一个阴影,但它不起作用,即使代码看起来显然是正确的。它所做的一切都是围绕底角,但我没有看到阴影。</p>

<pre><code>let shapeLayer = CAShapeLayer()

    let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [.bottomLeft, .bottomRight], cornerRadii: CGSize(width: 20, height: 20)).cgPath
    shapeLayer.path = path

    shapeLayer.shadowColor = UIColor(r: 233, g: 233, b: 233).cgColor
    shapeLayer.shadowOffset = CGSize(width: 0.0, height: 2.8)
    shapeLayer.shadowOpacity = 1.0
    shapeLayer.shadowRadius = 0.0
    shapeLayer.shouldRasterize = true
    shapeLayer.rasterizationScale = UIScreen.main.scale

    layer.rasterizationScale = UIScreen.main.scale
    layer.mask = shapeLayer
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>shapeLayer</code> 将 View 的角变圆,因为它被设置为层的 mask 。您可能希望将其添加为子层。</p>

<p><strong>旧:</strong></p>

<pre><code>layer.mask = shapeLayer
</code></pre>

<p><strong>新:</strong></p>

<pre><code>layer.addSublayer(shapeLayer)
</code></pre>

<p>如果有帮助,我在这里写了另一个关于向圆角 View 添加阴影的答案:<a href="https://stackoverflow.com/a/41475658/6658553" rel="noreferrer noopener nofollow">https://stackoverflow.com/a/41475658/6658553</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 用 CAShapeLayer 添加阴影?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/43791102/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/43791102/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 用 CAShapeLayer 添加阴影?