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
To get the full benefits import ShadowView
wherever you import UIKit
import UIKit
import ShadowView
- Download and drop all files in ShadowView directory in your project.
- Nice Job the best shadow library is now installed! ๐ ๐ ๐
This 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.3
Create 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 : CGFloat
Don'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.