swiftUI - snackbar 사용하기

WonDDak·2023년 9월 27일

Ios

목록 보기
1/1

swiftUI에서 스낵바를 사용하려는데 해당 기능이 없더라...
검색하면 git에 몇개 나오긴 하는데 맘에 드는게 없어서(안드로이드 처럼 심플하게..)

그래서 그냥 만들었다.

GIT여기서 확인 가능하다.

아래는 readme 내용 (변경될수 있으므로 깃 가서 보세용)


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,
    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
)

Result

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

History

profile
안녕하세요. 원딱입니다.

0개의 댓글