A simple and ready to use Snackbar for your SwiftUI Application
- Open Xcode
- Go to
File > Swift Packages > Add package dependency - Add it by pasting this link
https://github.com/zaniluca/SwiftUISnackbar - Select the
Versionyou want to add, theBranchor even the singleCommit
To add a Snackbar to your SwiftUI View you must first import the package
import SwiftUISnackbarThen to use it just add to your view the custom View's method .snackbar
Text("Hello, World!")
.snackbar(...)
}To set the values on the Snackbar you can either define them individually like so
import SwiftUI
import SwiftUISnackbar
struct YourView: View {
var title: String = "Snackbar Title"
var text: String = "Hi I'm the Snackbar's text"
@State var show: Bool = true
var body: some View {
Text("Hello, World!")
.snackbar(isShowing: $show, title: title, text: text, style: .custom(.blue))
}
}Or by using the Wrapper SnackbarStore that you can use to interact with the Snackbar
You can use it as a @StateObject or as an @EnvironmentObject so that you can use it by injecting it in the View Hierarchy making it accessible from any children view
struct MyView: View {
@StateObject var store = SnackbarStore()
var body: some View {
Text("Hello, World!")
.snackbar(isShowing: $store.show, title: store.title, text: store.text, style: store.style, actionText: store.actionText, action: store.action)
}
}Remember to inject it in the View Hierarchy like so
MyView()
.environmentObject(SnackbarStore())And the you can use it normally
struct MyView: View {
@EnvironmentObject var store: SnackbarStore
var body: some View {
Text("Hello, World!")
.snackbar(isShowing: $store.show, title: store.title, text: store.text, style: store.style, actionText: store.actionText, action: store.action)
}
}- 1.0.0 - 01/10/2021
- First release 🎉
- Support for markdown inside Text (only iOS15)
- 0.0.2 - 18/03/2021
- Dismiss on tap
- Set dismiss timer
- 0.0.1 - 15/03/2021
- First relase
Luca Zani – @zaniluca_ – zani.luca@icloud.com
Distributed under the MIT license. See LICENSE for more information.