iOS 16.1 Live Activities(即時動態) 之動態島 上一篇 我們提到了即時動態的基本應用和相關的設定,那這篇我們就來聊聊更多關於即時動態能做到的酷炫功能吧! 上次我們提到關於 ActivityConfiguration 的設置: import SwiftUI import WidgetKit @available(iOSApplicationExtension 16.1, *) @main struct PizzaDeliveryWidget: Widget { var body: some WidgetConfiguration { ActivityConfiguration(for: PizzaDeliveryAttributes.self) { context in // 製作鎖定畫面應該顯示的畫面,這也同時支援沒有動態島的iOS裝置。 } dynamicIsland: { context in // 製作動態島顯示畫面,這部分下一章會再細說 // ... } } } 但也只有針對上半部 context 的設計去作延伸,但我相新眼尖的各位一定有發現在 closure 的下面有另外一個 context 的設定,看字面上的意思,當然就是關於動態島的設置,因為這部分的內容偏多、複雜,所以我就另外寫一篇文章來跟大家分享。 Dynamic Island 動態島 首先呢,以開發者的角度來看的話,Apple 官方在開發動態島的元件 UI 時,有列出了一些規範和不同的顯示狀況: 一. 當使用者只有一個顯示中的即時動態時,動態島會在畫面上呈現 Leading side (頭) 跟 Trailing side (尾)。 這時就只有兩側的畫面能夠顯示相關資訊,因此會建議開發者在這樣的規範下設置首要的資訊就好,以上禮拜提到的外送來繼續舉例的話,首要的資訊就是餐點的即時動態。 二. 當使用者同時有不只一個即時動態在運作的時候,兩個即時動態會以 minimal 的方式在 UI 上做互動,動態島選擇一個優先級別更高的顯示在 Leading side,而另一個會以圓形圖示展現在 trailing side 的位置。...