Scripting App 支持用于视图层级的数据遮罩(Redaction)修饰符。通过这些修饰符,开发者可以将视图内容以占位符、隐私保护或失效状态的形式展示,常用于加载中、隐私信息隐藏或内容待更新的场景。
这些修饰符的行为与 SwiftUI 中的 redacted(reason:)
和 unredacted()
完全一致。
redacted
为当前视图及其子视图应用数据遮罩效果,根据传入的遮罩原因改变内容的显示方式。
redacted
会在不改变原始数据的情况下,以视觉形式替代原始内容。常用于提升用户体验,例如在内容加载时使用占位图形,或在展示敏感信息时进行遮罩。
RedactedReason
placeholder
:以占位符形式展示数据,适用于加载中状态。invalidated
:表示数据已失效或正在等待更新。privacy
:对内容进行遮罩,以保护用户隐私或敏感信息。上述示例中,文本内容将以占位符样式展示,适用于数据尚未加载完成的情况。
unredacted
用于移除继承自父视图的遮罩效果,使当前视图恢复原始样式。
当上层视图应用了 redacted
后,可以在子视图中通过设置 unredacted: true
取消遮罩,使该子视图内容正常显示。
在此示例中,整个 VStack
应用了遮罩,但第二个 Text
通过 unredacted: true
显示真实内容,不受遮罩影响。
unredacted
仅在其所在视图受到父视图遮罩影响时才会生效。redacted: null
可移除当前视图的遮罩状态(不推荐同时使用 unredacted
)。