欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何在SwiftUI中創(chuàng)建懸浮操作按鈕

 更新時間:2023年10月27日 10:46:15   作者:網(wǎng)羅開發(fā)  
懸浮操作按鈕(Floating Action Button, FAB)是一種在 Android 和 Material Design 中使用的 UI 元素,它用于觸發(fā)特定屏幕的主要操作,下面我們就來詳細介紹一下如何在SwiftUI中創(chuàng)建懸浮操作按鈕,需要的朋友可以參考下

前言

懸浮操作按鈕(Floating Action Button, FAB)是一種在 Android 和 Material Design 中使用的 UI 元素。它用于觸發(fā)特定屏幕的主要操作。

盡管它來自 Android,但在一些 iOS 應用中也可以看到這種模式。

以下是 Twitter 應用中懸浮操作按鈕的示例。Twitter App 在最重要的操作步驟,發(fā)布推文時使用懸浮操作按鈕。如下圖,在右下角有一個藍底中間有加號的按鈕。

下面我們就來詳細介紹一下還如何實現(xiàn)這個懸浮按鈕需求。

創(chuàng)建懸浮操作按鈕

如何 SwiftUI 創(chuàng)建一個類似 Twitter App 中的懸浮按鈕。

實現(xiàn)懸浮操作按鈕可能有很多方法,下面是我要實現(xiàn)按鈕的一些簡單需求,如下:

  • 懸浮按鈕應該出現(xiàn)在屏幕的主要內容前面。
  • 懸浮按鈕位于屏幕的右下角。
  • 懸浮按鈕具有圓角形狀,并在中心具有一個圖標。
  • 懸浮按鈕帶有一個輕微的陰影。

這是要實現(xiàn)懸浮按鈕的所有行為。讓我們逐步實現(xiàn)這些需求。

在此之前,需要先創(chuàng)建并初始化一個屏幕用來承載這個懸浮按鈕。

以下是一個簡單的列表視圖,嵌套在導航視圖和選項卡視圖中,列表中顯示了 item 加索引內容。

并在菜單欄中添加了 Home 按鈕和圖標,核心代碼如下:

struct ContentView: View {
    var body: some View {
        TabView {
            NavigationStack {
                List(0..<100) { i in
                    Text("Item \(i)")
                }
                .navigationTitle("Home")
            }
            .tabItem {
                Label("Home", systemImage: "house")
            }
        }
    }
}

示例運行截圖如下:

懸浮按鈕出現(xiàn)在屏幕的最前方

首先,是需要實現(xiàn)需求中的第一步,懸浮按鈕應該出現(xiàn)在屏幕的主要內容前面。

要使視圖出現(xiàn)在另一個視圖前面,可以使用 ZStackoverlay 修飾符。

在這種情況下,選擇使用 ZStack,核心代碼如下:

struct ContentView: View {
    var body: some View {
        TabView {
            NavigationStack {
                // 1
                ZStack {

                    List(0..<100) { i in
                        Text("Item \(i)")
                    }
                    .navigationTitle("Home")
                    // 2
                    Button {

                        // 操作
                    } label: {
                        Image(systemName: "plus")
                    }
                }
            }
            .tabItem {
                Label("Home", systemImage: "house")
            }
        }
    }
}

將內容視圖(List)包裝在 ZStack 中。將一個按鈕放在內容視圖上。

這將在列表視圖上添加一個加號圖像按鈕。

示例運行截圖如下:

懸浮按鈕位于屏幕的右下角

接著,是需要實現(xiàn)需求中的第二步,使按鈕與內容視圖對齊到右下角。

這里可以在代碼中使用 ZStack 的 alignment 參數(shù)將按鈕與右下角對齊,核心代碼如下:

struct ContentView: View {
    var body: some View {
        TabView {
            NavigationStack {
                // 1
                ZStack(alignment: .bottomTrailing) {

                    List(0..<100) { i in
                        Text("Item \(i)")
                    }
                    .navigationTitle("Home")

                    Button {
                        // 操作
                    } label: {
                        Image(systemName: "plus")
                    }
                    // 2
                    .padding()

                }
            }
            .tabItem {
                Label("Home", systemImage: "house")
            }
        }
    }
}
  • ZStack(alignment: .bottomTrailing) 使較小的視圖(Button)與較大的視圖(List)底部右對齊。
  • 我們還在按鈕周圍添加了填充,以使其不會過于靠近邊緣。

示例運行截圖如下:

將按鈕對齊到屏幕的右下角

使懸浮按鈕呈現(xiàn)圓形

接著,是需要實現(xiàn)需求中的第三步,使懸浮按鈕具有圓角形狀,并在中心具有一個圖標。

目前的情況位置是正確的,但外觀還不符合要求。

可以使用一系列修飾符使其變成圓形并加粗,核心代碼如下:

struct ContentView: View {
    var body: some View {
        TabView {
            NavigationStack {
                ZStack(alignment: .bottomTrailing) {
                    List(0..<100) { i in
                        Text("Item \(i)")
                    }
                    .navigationTitle("Home")

                    Button {
                        // 操作
                    } label: {
                        // 1
                        Image(systemName: "plus")

                            .font(.title.weight(.semibold))

                            .padding()

                            .background(Color.pink)

                            .foregroundColor(.white)

                            .clipShape(Circle())

                    }
                    .padding()
                }
            }
            .tabItem {
                Label("Home", systemImage: "house")
            }
        }
    }
}
  • 更改了字體樣式,添加了填充,背景色和前景色,并將其裁剪成圓形。

自定義按鈕的外觀

添加陰影

最后,是需要實現(xiàn)需求中的第四步,使懸浮按鈕帶有一個輕微的陰影。

我們通過添加陰影為其增色,使其看起來像懸浮。

SwiftUI 通過 shadow 修飾符內置了添加陰影的方法,核心代碼如下:

struct ContentView: View {
    var body: some View {
        TabView {
            NavigationStack {
                ZStack(alignment: .bottomTrailing) {
                    List(0..<100) { i in
                        Text("Item \(i)")
                    }
                    .navigationTitle("Home")

                    Button {
                        // 操作
                    } label: {
                        Image(systemName: "plus")
                            .font(.title.weight(.semibold))
                            .padding()
                            .background(Color.pink)
                            .foregroundColor(.white)
                            .clipShape(Circle())
                            .shadow(radius: 4, x: 0, y: 4)

                    }
                    .padding()
                }
            }
            .tabItem {
                Label("Home", systemImage: "house")
            }
        }
    }
}

示例運行截圖如下:

添加陰影

這就是在 SwiftUI 中創(chuàng)建懸浮操作按鈕所需的全部步驟。

總結

在本文中,我們學習了如何在 SwiftUI 中創(chuàng)建一個懸浮操作按鈕,它是 Android 和 Material Design 中常用的 UI 元素。通過逐步實現(xiàn)懸浮按鈕的各個特性來完成這個過程。

希望本文的內容對你在 SwiftUI 開發(fā)中有所幫助,能夠輕松地實現(xiàn)漂亮的懸浮操作按鈕,增強應用界面和用戶交互體驗。

以上就是詳解如何在SwiftUI中創(chuàng)建懸浮操作按鈕的詳細內容,更多關于SwiftUI創(chuàng)建懸浮操作按鈕的資料請關注腳本之家其它相關文章!

相關文章

  • 深入理解Swift中的變量與常量

    深入理解Swift中的變量與常量

    本文主要是介紹Swift中最常用的常量和變量,將從“變量常量的定義”、"如何聲明變量常量"、“變量和常量的命名”,"變量常量的本質區(qū)別"四個方面入手,重點介紹變量和常量的使用以及區(qū)別,希望大家在閱讀完本文后都可以熟練使用它們。有需要的朋友們下面來一起學習吧。
    2017-01-01
  • Swift繪制漸變色的方法

    Swift繪制漸變色的方法

    這篇文章主要為大家詳細介紹了Swift繪制漸變色的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • EvenLoop模型在iOS的RunLoop應用示例

    EvenLoop模型在iOS的RunLoop應用示例

    這篇文章主要為大家介紹了EvenLoop模型在iOS的RunLoop應用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Swift?enum枚舉類型使用詳解

    Swift?enum枚舉類型使用詳解

    這篇文章主要為大家介紹了Swift?enum枚舉類型的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 在一個項目中同時使用Swift和Objective-C代碼混合編程的方法

    在一個項目中同時使用Swift和Objective-C代碼混合編程的方法

    這篇文章主要介紹了在一個項目中同時使用Swift和Objective-C代碼的方法,在一個工程中同時使用Swift和Objective-C混合語言編程的方法,需要的朋友可以參考下
    2014-07-07
  • 用SwiftUI實現(xiàn)3D Scroll滾動效果的實現(xiàn)代碼

    用SwiftUI實現(xiàn)3D Scroll滾動效果的實現(xiàn)代碼

    這篇文章主要介紹了用SwiftUI實現(xiàn)3D Scroll效果的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習
    2020-04-04
  • 關于Swift 4.1中的Codable改進詳解

    關于Swift 4.1中的Codable改進詳解

    這篇文章主要給大家介紹了關于Swift 4.1中的Codable改進的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • Swift中的常量和變量簡單概述

    Swift中的常量和變量簡單概述

    這篇文章主要介紹了Swift中的常量和變量簡單概述的相關資料,非常具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-05-05
  • Swift3遷移至Swift4可能遇到的問題小結

    Swift3遷移至Swift4可能遇到的問題小結

    每當看到新的編程語言我總是會有相當大的興趣,所以下面這篇文章主要給大家介紹了關于Swift3遷移至Swift4可能遇到的問題,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起學習學習吧
    2018-06-06
  • SwiftUI?引導頁界面實現(xiàn)示例

    SwiftUI?引導頁界面實現(xiàn)示例

    這篇文章主要為大家介紹了SwiftUI?引導頁界面實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09

最新評論