SwiftUI-自定义容器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI-自定义容器相关的知识,希望对你有一定的参考价值。

参考技术A SwiftUI也是可以自定义容器的,我们将创建一个名为 GridStack 的新容器,它可以让我们在网格内创建任意数量的视图。

当循环遍历范围时,只有当我们确定范围内的值不会随时间变化时,SwiftUI 才能直接使用范围。这里我们使用ForEach 0..<rows和0..<columns,这两个值都可以随时间变化——例如,我们可能会添加更多行或列。在这种情况下,我们需要添加第二个参数ForEach,id: .self以告诉SwiftUI它如何能够识别循环中的每个视图。
此时,我们的自定义容器就可以使用了:

为了更灵活的使用自定义容器,我们可以使用@ViewBuilder-视图构建器,它允许我们发送多个视图并让它为我们形成一个隐式堆栈。
我们为GridStack创建一个自定义初始化器,以便我们可以将content闭包标记为使用 SwiftUI 的视图构建器系统:

以上是关于SwiftUI-自定义容器的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:自定义SearchBar

将自定义 UIKit 事件从自定义 UIKit 控件公开到 SwiftUI

为啥自定义 SwiftUI 视图不响应状态变化

SwiftUI:自定义模态动画

SwiftUI 自定义 PickerStyle

如何在 swiftui 中添加自定义字体?