SwiftUI 框架

SwiftUI 小技巧:如何在列表視圖隱藏 Disclosure 指示器

在 UIKit 中使用表格視圖時,我們可以設置屬性來配置單元格的指示器。但在 SwiftUI ,Apple 似乎沒有提供 API 讓我們配置列表視圖中的 disclosure 指示器。在這篇教學中,你將學會如何隱藏 disclosure 指示器。
SwiftUI 小技巧:如何在列表視圖隱藏 Disclosure 指示器
SwiftUI 小技巧:如何在列表視圖隱藏 Disclosure 指示器
In: SwiftUI 框架, UIKit

有了 SwiftUI ,開發者就可以輕鬆創建像 UIKit 表格視圖的列表視圖。在 UIKit 中使用表格視圖時,我們可以設置 accessoryType 屬性 (property),來輕鬆配置單元格 (cell) 的指示器 (indicator)。舉個例子,如果我們要禁用 disclosure 指示器,可以將屬性設置為 .none

cell.accessoryType = .none

但在 SwiftUI,Apple 似乎沒有提供 API,讓我們配置列表視圖中的 disclosure 指示器。在這篇小教學中,我們將會看看如何隱藏 disclosure 指示器。

編輯備註:如果你是第一次接觸 SwiftUI,可以先閱讀我們其他的 SwiftUI 教學文章

讓我們從簡單的列表視圖開始:

struct ContentView: View {
    var body: some View {
        NavigationView {
            List(1..<50) { index in

                NavigationLink(destination: Text("Item #\(index)")) {
                    Text("Item #\(index)")
                }

            }

            .navigationTitle("Demo")
        }
    }
}

在預覽面版中運行程式碼,就會看到一個列表視圖,顯示了 Text 物件的列表。點擊任何一個物件,就會進入詳細視圖。

hide-disclosure-indicator-swiftui

我們可以看到,當採用 NavigationLink 的時候,內置的列表視圖就會在每行數據中自動顯示一個 disclosure 指示器。那我們如何隱藏或刪除這個指示器呢?

隱藏 disclosure 指示器

List 視圖和 NavigationLink 都沒有提供修飾器 (modifier),讓我們設置 disclosure 指示器的外觀。所以,要隱藏指示器,可以如此修改程式碼:

struct ContentView: View {
    var body: some View {
        NavigationView {
            List(1..<50) { index in

                ZStack(alignment: .leading) {
                    NavigationLink(
                        destination: Text("Item #\(index)")) {
                        EmptyView()
                    }
                    .opacity(0)

                    Text("Item #\(index)")
                }

            }

            .navigationTitle("Demo")
        }
    }
}

訣竅是將 NavigationLinkText 視圖嵌入 ZStack 中!而導航的鏈接,我們將原本顯示 Text 視圖的設定,更改為顯示空白視圖。另外,我們將 opacity 修飾器附加到 NavigationLink,並將其數值設置為 0

現在,讓我們在預覽中測試,就會發現 disclosure 指示器消失了。

swiftui-list-hide-disclosure-indicator

希望你覺得這篇教學文章實用!如果你有任何問題,歡迎在下面留言。

譯者簡介:Kelly Chan-AppCoda 編輯小姐。
原文How to Hide Disclosure Indicator in SwiftUI List

作者
Simon Ng
軟體工程師,AppCoda 創辦人。著有《iOS 17 App 程式設計實戰心法》、《iOS 17 App程式設計進階攻略》以及《精通SwiftUI》。曾任職於HSBC, FedEx等跨國企業,專責軟體開發、系統設計。2012年創立AppCoda技術部落格,定期發表iOS程式教學文章。現時專注發展AppCoda業務,致力於iOS程式教學、產品設計及開發。你可以到推特與我聯絡。
評論
更多來自 AppCoda 中文版
iOS 18 新API:使用 Navigation Transition 創建 Hero 動畫式過場
SwiftUI 框架

iOS 18 新API:使用 Navigation Transition 創建 Hero 動畫式過場

Apple 的工程師可能早已認識到,許多 iOS 開發者都希望能夠重現 App Store 應用程式中的優雅 Hero 動畫。由於從頭實現這種動畫通常需要耗費大量時間與精力,Apple 在 iOS 18 SDK 中納入了這項功能。 透過這次更新,你現在只需少量的程式碼就能在自己的應用程式中實現類似的動畫過渡效果。這項重大改進讓開發者能夠創造出更具視覺吸引力且流暢的過渡效果,
如何使用 Vision APIs 從圖像中辨識文字
AI

如何使用 Vision APIs 從圖像中辨識文字

Vision 框架長期以來一直包含文字識別功能。我們已經有詳細的教程,向你展示如何使用 Vision 框架掃描圖像並執行文字識別。之前,我們使用了 VNImageRequestHandler 和 VNRecognizeTextRequest 來從圖像中提取文字。 多年來,Vision 框架已經顯著演變。在 iOS 18 中,Vision
iOS 18更新:SwiftUI 新功能介紹
SwiftUI 框架

iOS 18更新:SwiftUI 新功能介紹

SwiftUI的技術不斷演進,每次更新都讓 iOS 應用程式開發變得更加便捷。隨著 iOS 18 Beta 的推出,SwiftUI 引入了多個令人興奮的新功能,使開發者僅需幾行程式碼即可實現出色的效果。 本教學文章旨在探索這個版本中的幾項主要改進,幫助你了解如何運用這些新功能。 浮動標籤列 (Floating Tab Bar)SwiftUI中的標籤視圖(Tab
很好! 你已成功註冊。
歡迎回來! 你已成功登入。
你已成功訂閱 AppCoda 中文版 電子報。
你的連結已失效。
成功! 請檢查你的電子郵件以獲取用於登入的連結。
好! 你的付費資料已更新。
你的付費方式並未更新。