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的旅程,若有最新消息會通知。
廣告
發表迴響