1.10 布局修饰符
3 分钟阅读
原文链接: https://developer.apple.com/documentation/swiftui/view-layout
1.10 布局修饰符
通过调整视图的尺寸、位置、对齐、内边距等,告诉视图如何在视图层级中安排自己。
概述
用布局修饰符微调视图在视图层级中的摆放。你可以调整或约束视图的尺寸、位置和对齐方式,也可以在视图周围添加内边距,并指明视图如何与系统定义的安全区域交互。
要开始学习如何排列视图,参见布局基础。要了解如何对基本布局做细微调整,参见布局调整。
尺寸
- frame(width:height:alignment:) —— 把该视图放置在指定尺寸的不可见边框内。
- frame(depth:alignment:) —— 把该视图放置在指定深度的不可见边框内。
- frame(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:) —— 把该视图放置在具有指定尺寸约束的不可见边框内。
- frame(minDepth:idealDepth:maxDepth:alignment:) —— 把该视图放置在具有指定深度约束的不可见边框内。
- containerRelativeFrame(_:alignment:) —— 把该视图放置在尺寸相对于最近容器的不可见边框内。
- containerRelativeFrame(:alignment::) —— 把该视图放置在尺寸相对于最近容器的不可见边框内。
- containerRelativeFrame(_:count:span:spacing:alignment:) —— 把该视图放置在尺寸相对于最近容器的不可见边框内。
- fixedSize() —— 把该视图固定为其理想尺寸。
- fixedSize(horizontal:vertical:) —— 在指定维度上把该视图固定为其理想尺寸。
- layoutPriority(_:) —— 设置父布局向该子视图分配空间时所依据的优先级。
- containerCornerOffset(_:sizeToFit:) —— 调整视图布局,以避开容器视图在指定边缘上的圆角内边距。
位置
- position(_:) —— 把该视图的中心定位到父视图坐标空间中的指定点。
- position(x:y:) —— 把该视图的中心定位到父视图坐标空间中的指定坐标。
- offset(_:) —— 按 offset 参数中指定的水平和垂直距离偏移该视图。
- offset(x:y:) —— 按指定的水平和垂直距离偏移该视图。
- offset(z:) —— 把视图沿 Z 轴向前移动给定的点数。
- coordinateSpace(_:) —— 为视图的坐标空间命名,让其他代码可以基于该命名空间操作点、尺寸等度量。
对齐
- alignmentGuide(_:computeValue:) —— 设置视图的水平对齐方式。
内边距与间距
- padding(_:) —— 为该视图的各个边缘添加不同的内边距。
- padding(::) —— 为该视图的特定边缘添加相同的内边距。
- padding3D(_:) —— 用你指定的边缘内边距为该视图添加内边距。
- padding3D(::) —— 用你指定的边缘内边距为该视图添加内边距。
- listRowInsets(_:) —— 为列表中的行应用内边距。
- listRowInsets(::) —— 设置列表行在指定边缘上的内边距。
- scenePadding(_:) —— 用适合当前场景的量,为该视图的指定边缘添加内边距。
- scenePadding(_:edges:) —— 用适合当前场景的量,为视图的指定边缘添加指定种类的内边距。
- listRowSpacing(_:) —— 设置列表中相邻两行之间的垂直间距。
- listSectionSpacing(_:) —— 把 List 中相邻分区之间的间距设为自定义值。
- listSectionMargins(::) —— 为特定边缘设置分区外边距。
网格配置
- gridCellColumns(_:) —— 告诉作为网格单元格的视图跨指定的列数。
- gridCellAnchor(_:) —— 为作为网格单元格的视图指定自定义对齐锚点。
- gridCellUnsizedAxes(_:) —— 要求网格布局不要在指定轴上给该视图提供额外空间。
- gridColumnAlignment(_:) —— 覆盖视图所在网格列的默认水平对齐方式。
安全区域与边距
- ignoresSafeArea(_:edges:) —— 扩展视图的安全区域。
- ignoresSafeArea(_:edges:alignment:) —— 扩展视图的安全区域,并用提供的对齐方式在新边界内对齐内容。
- safeAreaInset(edge:alignment:spacing:content:) —— 在被修改的视图旁边显示指定内容。
- safeAreaBar(edge:alignment:spacing:content:) —— 把指定内容作为自定义栏显示在被修改的视图旁边。
- safeAreaPadding(_:) —— 把提供的内边距加入该视图的安全区域。
- safeAreaPadding(::) —— 把提供的内边距加入该视图的安全区域。
- contentMargins(_:for:) —— 为给定的放置位置配置内容边距。
- contentMargins(::for:) —— 为给定的放置位置配置内容边距。
图层顺序
- zIndex(_:) —— 控制相互重叠视图的显示顺序。
布局方向
- layoutDirectionBehavior(_:) —— 设置该视图在不同布局方向下的行为。
自定义布局特征
- layoutValue(key:value:) —— 把一个值与自定义布局属性关联起来。
- containerValue(::) —— 设置视图的某个特定容器值。