ShadowView is an iOS Shadow library that makes view's shadow implementation easy and sweet ๐ ๐.
Add simple shadows to add a gaussian blurred projection (as a shadow) to any UIView.
- Add shadow easily from the storyboard and programmatically.
- Add a gaussian blurred projection of your view (like iOS 10 music app).
- Customize the border width and border color of any view from storyboard .
- iOS 9.0+
- Xcode 8
You can use CocoaPods to install ShadowView by adding it to your Podfile:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '9.0' use_frameworks! target '<Your Target Name>' do pod 'ShadowView' end- Install Carthage via Homebrew
$ brew update $ brew install carthage-
Add
github "PierrePerrin/ShadowView"to your Cartfile. -
Run
carthage update. -
Drag
ShadowView.frameworkfrom theCarthage/Build/iOS/directory to theLinked Frameworks and Librariessection of your Xcode projectโsGeneralsettings. -
Add
$(SRCROOT)/Carthage/Build/iOS/ShadowView.frameworktoInput Filesof Run Script Phase for Carthage.
- Download and drop all files in ShadowView directory in your project.
- Nice Job the best shadow library is now installed! ๐ ๐ ๐
To get the full benefits import ShadowView wherever you import UIKit
import UIKit import ShadowViewThis shadow framework uses default CoreGraphics shadows by adding it the the layer of the view.
layer.shadowColor : CGColor layer.shadowRadius : CGFloat layer.shadowOffset : CGSize layer.shadowOpacity : Float layer.shadowPath : CGPath?Here the implemation is different. A shadow container need to be added and all views that needs a blurred shadow need to be subviews of this container.
The container takes a screen of all it's subviews and then apply blur on it.
Any view has new paramerters in the storyboar that you can change in order to add a customize shadow to your view.
Add an UIView to you ViewController, change it class to ShadowView and insert in it all view that needs a blurred shadow. 
Set the shadows parameters to your view and it the shadow will appear! ๐
view.shadowRadius = 5 view.shadowOffset = CGSize.zero view.shadowColor = UIColor.black.cgColor view.shadowOpacity = 0.3Create you container ShadowView and then add views that need Shadows inside of it.
let exampleShadowContainerView = ShadowView() let imageView = UIImageView(image: #imageLiteral(resourceName: "sample.jpg")) override func loadView() { super.loadView() exampleShadowContainerView.frame = self.view.bounds exampleShadowContainerView.autoresizingMask = [.flexibleWidth,.flexibleHeight] exampleShadowContainerView.shadowOffset = CGSize(width: 0, height: 10) exampleShadowContainerView.shadowRadius = 20 self.view.addSubview(exampleShadowContainerView) self.exampleShadowContainerView.addSubview(imageView) imageView.center = exampleShadowContainerView.center } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() imageView.frame.size = CGSize(width: 200, height: 200) imageView.center = exampleShadowContainerView.center self.exampleShadowContainerView.updateShadow() }Please see the example for more prescisions.
//Shared Paramerters @IBInspectable public var shadowRadius : CGFloat @IBInspectable public var shadowOffset : CGSize @IBInspectable public var shadowColor : UIColor? @IBInspectable public var shadowOpacity : Float //Normal Shadow @IBInspectable var shadowPath : CGPath? //ShadowView only ///It changes the size of the projected shadow view. @IBInspectable var shadowScale : CGFloat ///Changes the tint color of the blurred image @IBInspectable var shadowTintColor : UIColor ///Changes the saturation of the blurred image (default:1) @IBInspectable var shadowSaturation : CGFloatDon't use Views like Sliders or ActivityIndicators, the shadow don't update un real-time. It's preferable to use statics Views like Labels, images...
We would love you for the contribution to ShadowView, check the LICENSE file for more info. If you find an issue, open a ticket on it.
Pierre Perrin โ pierreperrin@outlook.com
Distributed under the MIT license. See LICENSE for more information.

