CALayerとUIButtonに影(ドロップシャドウ)を付ける


平面なデザインで画面ができてくると、何か影を付けて締めたくなってきました。
UIとして動かせるところに影を付ければ、

触れる感も出せるだろうと思い、各ボタンと時計の文字盤に使っているCALayerに影を付けることにしました。
早速、ググってみました。

まず、UIButtonの影の付け方については、こちらのサイトで紹介されていました。
それを参考に、自分のコードへ以下のように組み込んでみました。

UIButtonの名前に続けて、.layer.shadow〜ってやれば良いようです。

透明度は、floatingでも整数でも大丈夫でした。
影のボケ足は、距離と方向を表すようです。
2,2とすれば、右下に2pxのボケ足が伸びます。
また、参考にしたサイトにも載っていましたが、表示される画像の通りに影が付いてくれました。

続いて、CALayerへの影付けですが、UIButtonとほとんど変わらないことが、こちらのサイトの紹介で分かりました。
自分のコードに組み込んだら、以下のようになりました。

UIButtonのに比べて、レイヤーの名前の後に「.layer」が無いだけです。
UIButton同様、こちらも表示される画像の通りに影が付いてくれました(コードで円を描くのが面倒だったので、透過png画像を使用しています)。

CALayer(中央の文字盤)とUIButton(画面隅のボタンとカニ)に影を付けた結果が以下です。

これで、UIには影が付き、少し画面が締まって奥行きが出てきた気がします。

さらに、参考にしたサイトには、影のボケ具合など、もっと様々なオプションが紹介されていました。
機会があったら、使ってみたいと思います。

★★★自作iPhoneアプリをAppStoreでリリースするまでの道のり★★★