随着 iOS 16 的发布,Apple 引入了新的 SwiftUI 的 Layout 协议。在这篇文章中,我将讨论该协议并实现自定义视图
Apple 在 iOS 16 中引入了新的 SwiftUILayout协议。它是一个强大的工具,用于构建具有 SwiftUI 优雅的自定义视图。在这篇文章中,我将介绍它是什么Layout以及如何使用它。
最后,我们将构建一个自动排列其子视图的自定义表格视图。
符合布局
讨论Layout的是一个新协议,它允许您选择一种排列视图的方式。
通过它,您实际上可以说出要放置子视图的坐标。例如 now HStack、VStack、 和 ,ZStack可以通过它在 iOS 16 中轻松实现。
protocol Layout : Animatable
要符合协议,需要定义两个方法
func sizeThatFits(proposal: ProposedViewSize,subviews: Self.Subviews,cache: inout Self.Cache
) -> CGSizefunc placeSubviews(in bounds: CGRect,proposal: ProposedViewSize,subviews: Self.Subviews,cache: inout Self.Cache
)