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 โ [email protected]
Distributed under the MIT license. See LICENSE for more information.

