Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gabrieltheodoropoulos/gtblurview
Add blur effect to any view in iOS based projects using a simple, modern and declarative way. Available as a Swift package.
https://github.com/gabrieltheodoropoulos/gtblurview
blur blureffects blurview ios swift swiftpackage uikit
Last synced: 29 days ago
JSON representation
Add blur effect to any view in iOS based projects using a simple, modern and declarative way. Available as a Swift package.
- Host: GitHub
- URL: https://github.com/gabrieltheodoropoulos/gtblurview
- Owner: gabrieltheodoropoulos
- License: mit
- Created: 2020-07-28T16:27:19.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-07-29T09:46:58.000Z (over 4 years ago)
- Last Synced: 2024-10-30T17:16:31.189Z (about 2 months ago)
- Topics: blur, blureffects, blurview, ios, swift, swiftpackage, uikit
- Language: Swift
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GTBlurView
![Language](https://img.shields.io/badge/Language-Swift-orange)
![Platform](https://img.shields.io/badge/Platform-iOS-lightgrey)
![License](https://img.shields.io/badge/License-MIT-brightgreen)
![Version](https://img.shields.io/badge/Version-1.0.2-blue)#### Add blur effect to any view in a simple, modern and declarative way.
## About
GTBlurView is a Swift library that allows to add blur effect to any view with or without vibrancy in a modern and declarative fashion. Made for UIKit based projects on iOS.
## Integrating GTBlurView
To integrate `GTBlurView` into your projects follow the next steps:
1. Copy the repository's URL to GitHub.
2. Open your project in Xcode.
3. Go to menu **File > Swift Packages > Add Package Dependency...**.
4. Paste the URL, select the package when it appears and click Next.
5. In the *Rules* leave the default option selected (*Up to Next Major*) and click Next.
6. Select the *GTBlurView* package and select the *Target* to add to; click Finish.
7. In Xcode, select your project in the Project navigator and go to *General* tab.
8. Add GTBlurView framework under *Frameworks, Libraries, and Embedded Content* section.Don't forget to import `GTBlurView` module anywhere you are about to use it:
```swift
import GTBlurView
```## Public API
```swift
// -- Class Methods
// Create a `GTBlurView` view with a blur effect visual effect view
// and add it to the given parent view.
addBlur(to:)// Remove the `GTBlurView` instance and all of its subviews from the given view.
remove(from:)// Remove `GTBlurView` instance and all of its subviews from the given view animated.
removeAnimated(from:duration:completion:)// -- Instance Methods
// Change the default blur style.
set(style:)// Add vibrancy to blur effect.
useVibrancy()// Add a subview to vibrancy effect view.
addVibrancySubview(_:layoutRules:)// Remove `GTBlurView` instance and its contents on tap.
removeOnTap(animated:animationDuration:actionHandler:completion:)
// Show the `GTBlurView` instance containing the blur effect without animation.
show()// Show the `GTBlurView` instance containing the blur effect view animated.
showAnimated(duration:completion:)```
## Usage Example
The simplest and fastest way to add blur effect to a view is the following:
```swift
GTBlurView.addBlur(to: self).show()// or
GTBlurView.addBlur(to: someView).show()
```where `self` and `someView` are UIView objects.
Blur view can be shown animated as well:
```swift
GTBlurView.addBlur(to: someView).showAnimated()
```Animation duration and completion handler can be optionally provided. Default animation duration is 0.4 seconds.
```swift
GTBlurView.addBlur(to: self).showAnimated(duration: 0.25) {
// do something upon completion...
}
```Both `show()` and `showAnimated(duration:completion:)` methods return a `GTBlurView` instance but they are marked with the `@discardableResult` attribute. That way assigning it to a variable or property is optional and Xcode will not show any warnings in case you avoid to do so.
### Blur Effect Style
Default blur effect style is `.regular`. Override it like so:
```swift
GTBlurView.addBlur(to: self)
.set(style: .dark)
.show()
```### Remove On Tap
It's possible to remove blur view by just tapping on it. Use the `removeOnTap(animated:animationDuration:delay:actionHandler:completion:)` method to enable it.
```swift
GTBlurView.addBlur(to: self)
.removeOnTap(animated: true, animationDuration: 0.25, actionHandler: {
// Do something when tapping on GTBlurView instance...
}, completion: {
// Do something when GTBlurView instance has been removed...
})
.show()
```Note that the only required argument is the `animated` value. All the rest are optional, and pass only those necessary to your implementation. Also:
* `actionHandler` closure can be used to trigger additional actions right when the blur view is tapped.
* `completion` closure is called when blur view dismissal is finished.### Use Vibrancy
To use vibrancy effect along with the blur effect use the `useVibrancy()` method:
```swift
GTBlurView.addBlur(to: self)
.useVibrancy()
.show()
```To add subviews to vibrancy's content view call the `addVibrancySubview(_:layoutRules:)` method:
```swift
let button = UIButton()
// Button configuration.GTBlurView.addBlur(to: someView)
.useVibrancy()
.addVibrancySubview(button, layoutRules: .auto)
.show()
```See the documentation of the `VibrancySubviewsLayoutRules` `enum` for details about laying out subviews to vibrancy effect view.
### Removing Blur View
One way to remove a blur view is by using the `removeOnTap(animated:animationDuration:delay:actionHandler:completion:)` method as shown above. Besides that, there are two ways to manually remove it:
**Without animation**
```swift
GTBlurView.addBlur(to: someView).show()
GTBlurView.remove(from: someView)
```**With animation**
```swift
GTBlurView.addBlur(to: someView).show()
GTBlurView.removeAnimated(from: someView)
```Animation duration and a completion handler can be optionally provided:
```swift
GTBlurView.addBlur(to: someView).show()GTBlurView.removeAnimated(from: someView, duration: 0.25) {
// do something once blur view has been removed...
}
```### Putting Everything Together
```swift
GTBlurView.addBlur(to: self)
.set(style: .regular)
.useVibrancy()
.addVibrancySubview(someView, layoutRules: .none)
.removeOnTap(animated: true, animationDuration: 0.25, actionHandler: {
// Do something when tapping on GTBlurView instance...
}, completion: {
// Do something when GTBlurView instance has been removed...
})
.showAnimated(duration: 0.25)
```## Other
To change blur transparency level you can change the `alpha` value of the returned `GTBlurView` instance by any of the `show()` or `showAnimated(duration:completion:)` methods.
Read the documentation of each method using Xcode's Quick Help for additional details.
## Version
Current up-to-date version is 1.0.2.
## License
GTBlurView is licensed under the MIT license.