3 偏好设置

原文链接: https://developer.apple.com/documentation/swiftui/preferences

3 偏好设置

把配置偏好从视图传递给容纳它们的容器视图。

概述

环境用于配置某个视图的子视图,而偏好设置则用于把配置信息从子视图向上发送给容器。不过,与从一个容器向下流向众多子视图的配置信息不同,单个容器需要协调从众多子视图向上流动的、可能相互冲突的偏好设置。

当你用 PreferenceKey 协议定义自定义偏好时,就指明了如何合并来自多个子视图的偏好。然后你可以用 preference(key:value:) 视图修饰符为某个视图设置该偏好的值。许多内置修饰符(例如 navigationTitle(_:))都依赖偏好设置把配置信息发送给它们的容器。

设置偏好

创建自定义偏好

基于几何信息设置偏好

  • anchorPreference(key:value:transform:) —— 为指定的偏好键设置一个值,该值是与当前坐标空间关联的几何值的函数,使该值的读取者可以把几何信息转换到自己的本地坐标中。
  • transformAnchorPreference(key:value:transform:) —— 为指定的偏好键设置一个值,该值是键的当前值与绑定到当前坐标空间的几何值的函数,使该值的读取者可以把几何信息转换到自己的本地坐标中。

响应偏好变化

由偏好生成背景与叠加层