に影が存在する場合は、影を含めてCALayer
をレンダリングしたいと思います。UIImage
CALayer
shadowRadius
これはすべて正常に機能しますが、ポイント/ピクセルとの関係が(経験的に)判断できない場合を除きます。
つまり、背景が透明で、ターゲットの影CALayer
を含むサイズが膨らんだ親を作成します。CALayer
次に、親をレンダリングしますCALayer
。
{width, height}
経験的には、親レイヤーのサイズをターゲットレイヤーのサイズに設定することで、shadowRadiusのシャドウ全体を厳密に含めることができるようですsize + 3.75 * shadowRadius.{width,height}
。
それはちょっと奇妙でハックっぽいです、そして私は本当の答え/派生を知りたいです。
ぼかしはガッシアンぼかしのようですので、これはどういうわけか答えに関係していると思います...
2 * shadowRadiusを使用すると、明確にクリップされます。
5 * shadowRadiusの使用は明らかに大きすぎます:
そして3.75*shadowRadiusはスポットになっているようです(しかしなぜ?!):