掌控 SwiftUI 视图的收缩。
默认情况下,SwiftUI 视图会根据其内容立即改变大小。这可能会导致视觉上非常嘈杂的行为,例如视觉内容抖动和不愉快地移动。这个软件包提供了两个简单的视图修饰符来解决这个问题。
应用此修饰符的视图在可见时永远不会收缩。它们可以在任何时间和任何维度上扩大。例如:
Text(value.formatted())
.neverShrink()
这非常适合于您不希望进行任何不必要的布局更改(由于内容收缩而导致)并且不介意潜在地浪费一些空间(在修改后的视图小于其最大值时)的视图。
此视图修饰符允许视图最终收缩,但仅在延迟之后,并且仅以一定的速率收缩(有效地动画化大小的减小)。例如:
Text(value.formatted())
.shrinkSlowly()
您可以从其默认值(三秒和每秒 30 像素)自定义延迟和速度,例如:
Text(value.formatted())
.shrinkSlowly(delay: .seconds(5),
speed: 10)
这适用于可能需要临时扩展但通常小于其峰值的视图。允许它们最终收缩可确保您不会长时间浪费空间,同时仍然防止对大小变化产生难看的敏感性。
包含一个演示应用程序(在“Demo”子文件夹中)展示了一些基本用例。
特别注意即使是显示数值的简单文本视图中的细微但可爱的差异 - 默认情况下,文本视图会抖动且不确定,应用伟哥 (Viagra) 使文本视图自信且一致。