SwiftUI TabView 教學:利用 PageTabViewStyle 建立 Paged Scrolling 視圖
在之前的這篇教學中,我們教過大家如何使用 TabView,來顯示 tab bar 界面。在 iOS 14 中,Apple 在 SwiftUI 框架引入了一個新的樣式:PageTabViewStyle,讓開發者創建頁面滾動 (paged scrolling) 界面。在這篇教學中,我們會教大家實作這種 tab 視圖樣式。 讓我們從一個簡單的 [...]
在 iOS 14 使用 matchedGeometryEffect 簡單為 App 建立絢麗的視圖動畫
在 iOS 14 中,Apple 為 SwiftUI 框架引入了很多新功能,像是 LazyVGrid 以及 LazyHGrid。其中 matchedGeometryEffect 非常引人注目,這個功能讓開發者只需要幾行程式碼,就能夠創造絢麗的視圖動畫。SwiftUI 框架已經讓開發者可以簡單地使用動畫來呈現視圖的變化,而 matchedGeometryEffect [...]
SwiftUI 動畫入門教學: 建立一個下載指示器
你是否曾在 Keynote 使用過奇妙的動作動畫?有了這些奇妙的動作,你可以輕易的建立兩張投影片間的滑動動畫 (slick animation)。 Keynote 會自動地分析兩張投影片間的物件,然後自動地渲染動畫。同樣,SwiftUI 也將奇妙動作 (Magic Move) 動畫帶入了 App 的開發中。動畫所用的框架是自動且神奇的。你只要定義一個視圖的兩個狀態,SwiftUI [...]
利用 UIViewControllerRepresentable 協定 在 SwiftUI 存取相簿並使用相機
先前我們曾探討 UIViewRepresentable 的用法,並展示了如何整合 UITextView 到 SwiftUI 專案中。雖然我們可以使用 UIViewRepresentable 協定包裝 UIKit 視圖 (View),但是視圖控制器 (View Controller) 呢?你可能需要在 App 中使用相機或存取使用者的相簿。那麼,如何將 UIImagePickerController 類別整合到 [...]
利用 SwiftUI 建立 Expandable List View 並探索 Inset Grouped 樣式!
SwiftUI 列表視圖 (list view) 和 UIKit 的 UITableView 很類似。在 SwiftUI 最初的版本中,Apple 的工程師已經將創建列表視圖的過程變得輕而易舉,我們不需要創建 prototype cell,也不需要委派 (delegate) 或 data source 的協定。我們只需要用幾行程式碼,就可以使用客製化單元格來建構一個列表視圖。在 [...]
SwiftUI 小技巧:簡單在列表視圖移除分隔線 (Line Separator)
SwiftUI 的列表視圖 (List View) 其實和 UIKit 的表格視圖 (Table View) 很類似,它們都是讓開發者把項目一列列地呈現,而預設設定上,每一列資料都會用分隔線 (line separator) 分開。在 UIKit 中,我們可以很簡單地改變分隔線的外觀與顏色;然而,SwiftUI 就沒有一個官方方法來移除分隔線。這麼一來,我們需要使用 [...]
使用 UIViewRepresentable 協定 讓你輕鬆建立 SwiftUI TextView
我非常喜歡使用 SwiftUI 框架,但是,與多數的新框架一樣,SwiftUI 也有一個缺點,就是它未能提供所有 UIKit 有的 UI 控件,比如說,你無法在 SwiftUI 找到與文本視圖 (text view) 相對應的控件。幸好,Apple 有一個 UIViewRepresentable 協定,讓你可以輕鬆打包 (wrap) 一個 [...]
SwiftUI 教學:利用 LazyVGrid 和 LazyHGrid 簡單步驟創建集合視圖
SwiftUI 最初的版本沒有原生集合視圖 (collection view)。你可以自己構建一個解決方案,或是使用第三方程式庫。在今年的 WWDC 中,Apple 為 SwiftUI 框架引入了許多新功能,其中一個就是實作 Grid 視圖。SwiftUI 現在為開發者提供兩個新的 UI 組件: LazyVGrid 和 LazyHGrid,一個用於創建垂直 [...]
SwiftUI 教學:使用 SwiftUI 來打造 Search Bar 原來那麼簡單!
最近,我收到一個問題,關於在 SwiftUI 專案中實作 Search Bar。與 UIKit 不同,SwiftUI 沒有內建的 Search Bar 物件可以使用。你或許可以使用 UIViewRepresentable 協定,以在 SwiftUI 專案中重用 UIKit 的 UISearchBar。但要使用純 SwiftUI 的方式來實作一個 Search Bar,其實並不困難。在這次的教學中,就讓我們來建立一個 [...]
SwiftUI 教學:利用 iPad 的 Swift Playgrounds 都可以學習 App 開發!
「我手上只有 iPad 而已,我可以用它來開發 iOS App 嗎?」 這是入門開發者最常問的問題。我一般的回應都是:「不行,你需要一台 Mac,來運行 Xcode 開發 iOS 程式。」 「那 iPad 的 Swift Playgrounds 呢?我可以用這個 App 來學習 Swift 和 App 開發嗎?」 相信你已經知道 [...]