查看布局和演示 (SwiftUI 中文文档手册)

查看布局和演示

合并视图中的视图,动态生成视图组和列表,并定义视图表示和层次结构。


总览

使用堆栈和列表来布局用户界面的视图。您可以将静态视图与从数据集合动态生成的视图结合起来。所有容器视图都会根据内容或界面尺寸的更改来更新和调整其子级的位置。


话题

必需品

建筑清单和导航

  • 设置了基本的地标详细信息视图后,您需要为用户提供一种查看地标的完整列表并查看有关每个位置的详细信息的方法。

组成复杂的接口

  • 地标的主屏幕显示类别的滚动列表,每个类别中的水平滚动地标。构建此主要导航时,您将探索组合视图如何适应不同的设备尺寸和方向。

堆栈

  • struct HStack
    将其子级排列在一条水平线上的视图。

  • struct VStack
    以垂直线排列其子项的视图。

  • struct ZStack
    覆盖其子项并在两个轴上对齐的视图。

  • struct LazyHStack
    一种视图,将其子级排列在水平增长的线中,仅在需要时创建项目。

  • struct LazyVStack
    一种视图,将其子级排列在垂直增长的线中,仅在需要时创建项。


格网

  • struct LazyHGrid
    容器视图,将其子视图排列在水平增长的网格中,仅在需要时创建项目。

  • struct LazyVGrid
    一种容器视图,将其子视图排列在垂直增长的网格中,仅在需要时创建项目。

  • struct GridItem
    单个网格项目(例如行或列)的描述。

列表和滚动视图

  • struct List
    一个容器,用于显示排列在单列中的数据行。

  • struct ForEach
    一种结构,用于根据已标识数据的基础集合计算按需视图。

  • struct ScrollView
    可滚动的视图。

  • struct ScrollViewReader
    其子级被定义为以该子级中的可滚动视图为目标的视图。ScrollViewProxy

  • struct ScrollViewProxy
    代理值,允许以编程方式滚动视图层次结构内的可滚动视图。

  • protocol DynamicViewContent
    一种视图类型,可从基础数据集中生成视图。

  • enum Axis
    2D坐标系中的水平或垂直尺寸。


容器视图

  • struct Form
    一个容器,用于对用于数据输入的控件(例如在设置或检查器中)进行分组。

  • struct Group
    分组视图内容的能力。

  • struct GroupBox
    具有可选标签的样式化视图,该标签与内容的逻辑分组相关联。

  • struct Section
    创建分层视图内容的能力。


分层视图

  • struct OutlineGroup
    一种结构,可根据树状结构的已标识数据的基础集合按需计算视图和公开组。

  • struct DisclosureGroup
    根据公开控件的状态显示或隐藏另一个内容视图的视图。


垫片和分隔线

  • struct Spacer
    沿其包含的堆栈布局的主轴或如果不包含在堆栈中的两个轴上扩展的灵活空间。

  • struct Divider
    可用于分隔其他内容的视觉元素。


建筑景观

  • struct NavigationView
    用于呈现视图堆栈的视图,这些视图表示导航层次结构中的可见路径。

  • struct TabView
    使用交互式用户界面元素在多个子视图之间切换的视图。

  • struct HSplitView
    一个布局容器,将其子级排列在一条水平线上,并允许用户使用放置在它们之间的分隔符来调整其大小。

  • struct VSplitView
    一个布局容器,它的子项沿垂直线排列,并允许用户使用放置在它们之间的分隔线来调整子项的大小。


简报

  • struct Alert
    警报演示的表示形式。

  • struct ActionSheet
    操作表演示文稿的存储类型。


有条件可见的物品

  • struct EmptyView

  • struct EquatableView
    一个视图类型,将其与之前的值进行比较,如果其新值与旧值相同,则阻止其子级更新。


不常用的视图

  • struct AnyView
    类型删除的视图。

  • struct TupleView
    通过视图值的快速元组创建的视图。


加入我们一起学习SwiftUI

QQ:3365059189
SwiftUI技术交流QQ群:518696470

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。