まず、layer.shadowOpacityがdefaultで0なので、これを設定しないと影が出ない。
で、以下だけだとパフォーマンスがやたら悪いので
layer.shadowRadius = 3;
layer.shadowColor = [UIColor blackColor].CGColor;
layer.shadowOpacity = 0.5;
layer.shadowOffset = CGSizeMake(1, 3); //defaultは 0, -3
これを追加すると(Pathを渡すと)めちゃめちゃ速い。
layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;
CALayerのShadowは、PathをLayerの裏側で描画してくれる機能と考えていい。
Pathはどんな形でもいいので、星形のPathを渡せばそれが描画される。
当然ながら、.maskToBounds=YESするとClipされて描画されなくなるので注意。