ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

swiftui-ui-patterns - grids

swiftui-ui-patterns - grids 网格Grids意图对于图标选择器、媒体画廊以及条目按列对齐的密集视觉选择使用LazyVGrid。核心模式对应在不同设备尺寸下缩放的布局使用.adaptive列。当需要固定列数时使用多个.flexible列。保持间距一致且较小避免不均匀的沟槽。需要方形缩略图时在网格单元内使用GeometryReader。示例自适应图标网格letcolumns[GridItem(.adaptive(minimum:120,maximum:1024))]LazyVGrid(columns:columns,spacing:6){ForEach(icons){iconinButton{select(icon)}label:{ZStack(alignment:.bottomTrailing){Image(icon.previewName).resizable().aspectRatio(contentMode:.fit).cornerRadius(6)ificon.isSelected{Image(systemName:checkmark.seal.fill).padding(4).tint(.green)}}}.buttonStyle(.plain)}}示例固定 3 列媒体网格LazyVGrid(columns:[.init(.flexible(minimum:100),spacing:4),.init(.flexible(minimum:100),spacing:4),.init(.flexible(minimum:100),spacing:4),],spacing:4){ForEach(items){iteminGeometryReader{proxyinThumbnailView(item:item).frame(width:proxy.size.width,height:proxy.size.width)}.aspectRatio(1,contentMode:.fit)}}应保留的设计选择对大型集合使用LazyVGrid避免对大数据集使用非懒加载网格。需要时使用.contentShape(Rectangle())让点击目标全幅可点。对设置选择器和灵活布局优先使用自适应网格。陷阱避免在每个网格单元中放置重型覆盖层这开销很大。没有明确理由时不要在一个网格内嵌套另一个网格。
返回列表