ViewPreference - custom type.
PreferenceKey - built-in type.
Anchor Preferences
What are View Preferences❓
It’s a way to send configuration data up the view hierarchy.
問:如何使用 view preference❓
設計一個遵循 PreferenceKey 協定的類別。
使用 childview.preference(key:value:)arrow-up-right 來設定要往上傳的資料。
使用 parentview.onPreferenceChange(_:perform:)arrow-up-right 讓上層決定如何回應。(通常會在 performarrow-up-right 這個 closure parameter 裡面改變 view state,藉此讓 view 有更新或重新 layout 的機會)
parentview 也可以使用 .backgroundPreferenceValuearrow-up-right() 或 .overlayPreferenceValuearrow-up-right() 來增加一個 background 或 overlay。
.readSize() - read a view's size.
Mark van Wijnen ⟩ Introducing View Preferences in SwiftUIarrow-up-right
Arda C. Tugay ⟩ Diving Deep into SwiftUI ⟩
Part 2: Using view preferences in SwiftUIarrow-up-right
Part 3: Using anchor preferences in SwiftUIarrow-up-right
SwiftOnTap ⟩ PreferenceKeyarrow-up-right
SwiftUIarrow-up-right ⟩
State & Data Flowarrow-up-right ⟩ PreferenceKeyarrow-up-right
.reduce()arrow-up-right
Views & Controlsarrow-up-right ⟩ Viewarrow-up-right ⟩ Statearrow-up-right ⟩
.preference()arrow-up-right
.transformPreferencearrow-up-right()
.onPreferenceChange()arrow-up-right
.backgroundPreferenceValuearrow-up-right()
.overlayPreferenceValuearrow-up-right()
view layout ⟩ Adaptive Layout
Get width of a view using in SwiftUIarrow-up-right
Last updated 3 years ago