如何实现灵活布局,让 SwiftUI 响应式设计更上一层楼?
- 内容介绍
- 文章标签
- 相关推荐
布局是流动的艺术
C位出道。 回顾《SwiftUI 进阶第4章:响应式布局》的内容, 我们不难发现,所谓的“灵活布局”,本质上是对空间和关系的深刻理解。我们不再是在画布上摆放死板的像素, 而是在构建一个有机的生命体,它能够感知环境的变化,并做出最优雅的反应。
不过用老手的话说GeometryReader 是个“带刺的玫瑰”。它虽然强大,但如果用不好,很容易把布局撑破或者造成预览上的视觉偏差。主要原因是它本质上是一个会尽可能占满父视图所有空间的容器。
灵活运用布局工具
在展示图片列表或者商品卡片时死板的单列列表明摆着无法满足大屏幕用户的视觉需求。这时候,LazyVGrid 和 LazyHGrid 就派上用场了。配合 GridItem我们可以轻松实现“手机上两列,平板上四列”的效果。
struct DynamicGridDemo: View {
@Environment private var horizontalSizeClass
var body: some View { ScrollView { VStack { 白嫖。
布局是流动的艺术
C位出道。 回顾《SwiftUI 进阶第4章:响应式布局》的内容, 我们不难发现,所谓的“灵活布局”,本质上是对空间和关系的深刻理解。我们不再是在画布上摆放死板的像素, 而是在构建一个有机的生命体,它能够感知环境的变化,并做出最优雅的反应。
不过用老手的话说GeometryReader 是个“带刺的玫瑰”。它虽然强大,但如果用不好,很容易把布局撑破或者造成预览上的视觉偏差。主要原因是它本质上是一个会尽可能占满父视图所有空间的容器。
灵活运用布局工具
在展示图片列表或者商品卡片时死板的单列列表明摆着无法满足大屏幕用户的视觉需求。这时候,LazyVGrid 和 LazyHGrid 就派上用场了。配合 GridItem我们可以轻松实现“手机上两列,平板上四列”的效果。
struct DynamicGridDemo: View {
@Environment private var horizontalSizeClass
var body: some View { ScrollView { VStack { 白嫖。

