UIViewやUIButtonに影をつける


はじめに

アプリを作っていてUIViewをベタ張りするととても見辛かったのでGoogleMapsを参考にViewに
影をつける方法をまとめます.

ソースコード

CALayerEx.swift
import Foundation
import UIKit

public extension CALayer {
    enum Direction {
        case top
        case bottom
    }

    public func addShadow(direction: Direction){
        switch direction {
        case .top:
            self.shadowOffset = CGSize(width: 0.0, height: -1)
        case .bottom:
            self.shadowOffset = CGSize(width: 0.0, height: 1)
        }
        self.shadowRadius = 1.5
        self.shadowColor = UIColor.black
        self.shadowOpacity = 0.5
    }
}

コードはとても簡単で、色々な場面で使えるのでExtensionに入れました.
これをこんな感じで使えば影がついてみやすくなります.
topにすると下から光が当たる感じになって上辺に影がつきます.
なおshadowRadiusやshadowColor,shadowOpacityは各々で統一したい値に変更するといいです.


        self.menuBarView.layer.addShadow(direction: .bottom)

最後に

他の人の記事を見るとこの処理は重いと言われているのをみたのですが検証していないのでわかりません、すみません.