Skip to content

jmseb3/SwiftUI-Snackbar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwiftUI_SnackBar

This is very simple Snackbar


Installation (SPM)

  1. Go to File > Swift Packages > Add package dependency
  2. Add it by pasting this link https://github.com/jmseb3/SwiftUI-Snackbar.git
  3. Select the Version you want to add, the Branch or even the single Commit

How To Use

import

import SwiftUI_Snackbar

make Controller

import SwiftUI
import SwiftUI_Snackbar

@main
struct testApp: App {
    //make Controller
    let sc = SnackbarController()

    var body: some Scene {
        WindowGroup {
            SnackBarHost() {
                //Yout ContentView
                ContentView()
            }.environmentObject(sc)
        }
    }
}

on @main make SnackbarController and use SnackBarHost

ContentView

struct ContentView: View {
    @EnvironmentObject var sc : SnackbarController
    
    @State var cnt :Int = 0
    var body: some View {
        VStack {
            Button("test") {
                cnt = cnt + 1
                sc.showSnackBar(
                    message: "test\(cnt)",
                    label: "ok"
                ) {
                    sc.resetSnackBar()
                }
            }
        }
        .padding()
    }
}

now you can use snackbar by SnackbarController

SnackbarController

you can use under method

func showSnackBar(
    message: String
) 

func showSnackBar(
    message: String,
    dismissAction : @escaping () -> Void
)

func showSnackBar(
    message: String,
    duration: SnackbarDuration = SnackbarDuration.Short
)

func showSnackBar(
    message: String,
    label: String? = nil,
    action:  @escaping () -> Void
)

func showSnackBar(
    message: String,
    label: String? = nil,
    duration: SnackbarDuration = SnackbarDuration.Short,
    action:  @escaping () -> Void
)

ChangeOption

class AppDelegate: NSObject, UIApplicationDelegate {
    
    func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        //Change Color
        SnackbarOption.shared.bgColor = Color.red
        SnackbarOption.shared.textColor = Color.red
        SnackbarOption.shared.labelColor = Color.red
        
        //Change TextSize
        SnackbarOption.shared.textSize = 15
        SnackbarOption.shared.textSize = 12

        return true
    }
    
}

Result

스크린샷 2023-09-27 오전 11 10 50

History

  • 0.0.3
    add TextSize Option

  • 0.0.2
    add Color Option

  • 0.0.1
    pre-Release

About

swift ui snackbar

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages