iOS SwiftUI PreferenceKey監聽變化

PreferenceKey是key與value的存取,監聽之間的變化

以下以監聽View大小為範例

建立流程

1. 先輸輸入下圖方式,再按修復

2. 修復後如下圖

3.  typealias Value輸入要監聽的資料,輸入後打defaultValue就可以直接選到對應的func

4. reduce裡面的value是當前,nextValue 是變更後的資料

本範例只需要存入即可

這樣基本的建立就完成了

使用方法

1. 設定Preference為geometry.size

2. 引用方式

Text("1234567890abcdefg")
     .background(ListenerView())

3. 監聽PreferenceKey變化

struct MainView: View {
    @State var size: CGSize = .zero
    var body: some View {
        VStack {
            Text("1234567890abcdefg")
                .background(ListenerView())
                .onPreferenceChange(
                    ViewSizeKey.self
                ) { value in
                    //當ViewSizeKey發生改變,會觸發此
                    print("value \(value)")
            }
        }
    }
}


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

WordPress.com.

向上 ↑

%d 位部落客按了讚: