第 23 章
利用 UIViewRepresentable 整合UIKit 組件
開發者一般都會問兩個有關 SwiftUI 的常見問題。 首先是如何在SwiftUI項目使用 Core Data, 而另一個常見問題是如何在 SwiftUI 項目中使用 UIKit 視圖。 在本章中,我們將透過在 Todo App 建立搜索欄以學習如何將UIKit內的 UISearchBar 整合至 SwiftUI 項目。
如果你是 UIKit 的新手,UISearchBar 是UIKit框架的一個內置組件,它允許開發者為數據搜索呈現一個搜索欄。 圖 23.1 顯示了 iOS 中的標準搜索欄。 然而,在SwiftUI 剛推出時,它並沒有附帶這個標準的 UI 組件。 要在 SwiftUI 項目(例如我們的 ToDo App)加入搜索欄,其中一種方法就是使用 UIKit 中的UISearchBar
組件。
那麼,我們如何在 SwiftUI 中整合 UIKit 視圖或控制器?
為了向後兼容,Apple 在 iOS SDK 中引入了幾個新協議,即 UIViewRepresentable 和 UIViewControllerRepresentable。 使用這些協議,你可以包裝 UIKit 視圖(或視圖控制器)並使其可用於你的 SwiftUI 項目。
為了了解它是如何工作的,我們將為Todo App加入搜索功能 。 我們將在App標題正下方添加一個搜索欄,讓用戶輸入搜索詞來過濾待辦事項。
想更深入學習SwiftUI和下載完整程式碼?你可以從 AppCoda網站購買《精通 SwiftUI》完整電子版。