- 建立流程
- 存入PreferenceKey Value
- 監聽PreferenceKey變化
PreferenceKey可以當成一個key與一個value的存取,然後去監聽他,通常可以運用在示圖的變化
建立流程
a. 先輸輸入下圖方式,再按修復
b. 修復後如下圖
c. typealias Value輸入要監聽的資料,輸入後打defaultValue就可以直接選到對應的func
d. reduce裡面的value是當前,nextValue func是變更後的資料,本範例只需要存入即可
存入PreferenceKey Value
a. 此存入子View的大小,如下圖,將value存入PreferenceKey
b. 引用方式,這樣Text只要建立後,就會將值存入PreferenceKeyText("1234567890abcdefg") .background(ListenerView())
監聽PreferenceKey變化
```
struct MainView: View {
@State var size: CGSize = .zero
var body: some View {
Text("1234567890abcdefg")
.background(ListenerView())
.onPreferenceChange(ViewSizeKey.self) {
//當PreferenceKey有值存入時,此處就會觸發,$0就是變更的資料
size = $0
}
}
```