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>'dopod'ShadowView'end- Install Carthage via Homebrew
$ brew update
$ brew install carthageAdd
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.
letexampleShadowContainerView=ShadowView()letimageView=UIImageView(image: #imageLiteral(resourceName:"sample.jpg"))overridefunc loadView(){
super.loadView()
exampleShadowContainerView.frame =self.view.bounds
exampleShadowContainerView.autoresizingMask =[.flexibleWidth,.flexibleHeight]
exampleShadowContainerView.shadowOffset =CGSize(width:0, height:10)
exampleShadowContainerView.shadowRadius =20self.view.addSubview(exampleShadowContainerView)self.exampleShadowContainerView.addSubview(imageView)
imageView.center = exampleShadowContainerView.center
}overridefunc 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
@IBInspectablepublicvarshadowRadius:CGFloat@IBInspectablepublicvarshadowOffset:CGSize@IBInspectablepublicvarshadowColor:UIColor?@IBInspectablepublicvarshadowOpacity:Float
//Normal Shadow
@IBInspectablevarshadowPath:CGPath?
//ShadowView only
///It changes the size of the projected shadow view.
@IBInspectablevarshadowScale:CGFloat
///Changes the tint color of the blurred image
@IBInspectablevarshadowTintColor:UIColor
///Changes the saturation of the blurred image (default:1)
@IBInspectablevarshadowSaturation: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.

