SwiftUI 實(shí)用的SPM

1. PopupView

  • 功能: 提供高度自定義的彈窗(Popup)和 Toast 提示。

  • 特點(diǎn):

    • 支持從屏幕頂部、底部、中間彈出。

    • 支持自定義動(dòng)畫和樣式。

    • 易于集成和使用。

  • GitHub: PopupView
    安裝方式
    在 Package.swift 或 Xcode 的 SPM 中添加:

dependencies: [
    .package(url: "https://github.com/exyte/PopupView.git", from: "2.0.0")
]

示例

import SwiftUI
import PopupView

struct ContentView: View {
    @State private var showPopup = false

    var body: some View {
        VStack {
            Button("顯示 Toast") {
                showPopup = true
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(10)
        }
        .popup(isPresented: $showPopup, type: .toast, position: .bottom) {
            Text("這是一個(gè) Toast 提示")
                .padding()
                .background(Color.black.opacity(0.8))
                .foregroundColor(.white)
                .cornerRadius(10)
                .padding(.bottom, 40)
        }
    }
}

2. AlertToast

  • 功能: 提供類似 Android 的 Toast 提示。

  • 特點(diǎn):

    • 簡單易用,支持多種樣式(普通 Toast、帶圖標(biāo)的 Toast、加載中 Toast 等)。

    • 支持自定義顯示時(shí)長和動(dòng)畫。

  • GitHub: AlertToast

安裝方式

Package.swift 或 Xcode 的 SPM 中添加:

dependencies: [
    .package(url: "https://github.com/elai950/AlertToast.git", from: "1.0.0")
]

示例

import SwiftUI
import AlertToast

struct ContentView: View {
    @State private var showToast = false

    var body: some View {
        VStack {
            Button("顯示 Toast") {
                showToast = true
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(10)
        }
        .toast(isPresenting: $showToast) {
            AlertToast(type: .regular, title: "這是一個(gè) Toast 提示")
        }
    }
}

3. SwiftMessages

  • 功能: 提供豐富的消息提示框(Toast、Popup、Banner 等)。

  • 特點(diǎn):

    • 支持多種樣式和動(dòng)畫。

    • 高度可定制,適合復(fù)雜場景。

  • GitHub: SwiftMessages

安裝方式

Package.swift 或 Xcode 的 SPM 中添加:

dependencies: [
    .package(url: "https://github.com/SwiftKickMobile/SwiftMessages.git", from: "9.0.0")
]

示例代碼

import SwiftUI
import SwiftMessages

struct ContentView: View {
    var body: some View {
        VStack {
            Button("顯示 Banner") {
                showBanner()
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(10)
        }
    }

    private func showBanner() {
        let view = MessageView.viewFromNib(layout: .cardView)
        view.configureContent(title: "提示", body: "這是一個(gè) Banner 提示")
        view.button?.isHidden = true
        SwiftMessages.show(view: view)
    }
}

4. SPAlert

  • 功能: 提供類似 iOS 系統(tǒng)風(fēng)格的提示框。

  • 特點(diǎn):

    • 支持成功、錯(cuò)誤、警告等多種樣式。

    • 支持自定義圖標(biāo)和標(biāo)題。

  • GitHub: SPAlert

安裝方式

Package.swift 或 Xcode 的 SPM 中添加:

dependencies: [
    .package(url: "https://github.com/ivanvorobei/SPAlert.git", from: "3.0.0")
]

示例

import SwiftUI
import SPAlert

struct ContentView: View {
    var body: some View {
        VStack {
            Button("顯示提示框") {
                showAlert()
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(10)
        }
    }

    private func showAlert() {
        let alertView = SPAlertView(title: "成功", message: "操作成功完成", preset: .done)
        alertView.present()
    }
}

5. ToastUI

  • 功能: 提供簡單易用的 Toast 提示。

  • 特點(diǎn):

    • 支持自定義內(nèi)容和樣式。

    • 支持 SwiftUI 原生集成。

  • GitHub: ToastUI

安裝方式

Package.swift 或 Xcode 的 SPM 中添加:

dependencies: [
    .package(url: "https://github.com/quanshousio/ToastUI.git", from: "2.0.0")
]

示例

import SwiftUI
import ToastUI

struct ContentView: View {
    @State private var showToast = false

    var body: some View {
        VStack {
            Button("顯示 Toast") {
                showToast = true
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(10)
        }
        .toast(isPresented: $showToast) {
            ToastView("這是一個(gè) Toast 提示")
                .toastViewStyle(DefaultToastViewStyle())
        }
    }
}

PopupView 高度自定義的彈窗和 Toast 需要復(fù)雜彈窗的場景
AlertToast 簡單易用的 Toast 提示 快速集成 Toast
SwiftMessages 豐富的消息提示框(Banner、Popup) 需要多種樣式提示的場景
SPAlert 類似 iOS 系統(tǒng)風(fēng)格的提示框 系統(tǒng)風(fēng)格提示框
ToastUI 簡單易用的 Toast 提示 SwiftUI 原生集成

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容