SwiftUI2.0更新六之LazyVGrid和LazyHGrid

本文深入探讨SwiftUI中LazyVGrid与LazyHGrid的使用方法,包括不同场景下的布局调整,如最小宽度限制、每行固定数量的grid及水平Grid的展示,同时介绍了如何将Text视图替换为Button。

新增的网格显示功能LazyVGrid以及LazyHGrid

LazyVGrid

let text = (1...10).map{"Hello\($0)"}
//以最小宽度160斤可能在一行放入grid
let columns = [GridItem(.adaptive(minimum: 160))]  

body内

var body: some View {
        ScrollView{
            Section(header: Text("最小160")){
            LazyVGrid(columns: columns, spacing: 20){
                ForEach(text, id: \.self){
                    item in
                    Text(item)
                }
            }
        }
        }

为了方便对比不同的情况,先加入Section
在这里插入图片描述
修改一下

let columns = [GridItem(.adaptive(minimum: 80))] 

在这里插入图片描述
增加新的变量

//每行三个grids,大小灵活分配
let columnsFixed = [
            GridItem(.flexible()),
            GridItem(.flexible()),
            GridItem(.flexible())
    ]

body代码修改为

var body: some View {
        ScrollView{
            Section(header: Text("最小80")){
            LazyVGrid(columns: columns, spacing: 20){
                ForEach(text, id: \.self){
                    item in
                    Text(item)
                }
            }
        }
            Section(header: Text("每行三个Grid")){
            LazyVGrid(columns: columnsFixed, spacing: 20){
                ForEach(text, id: \.self){
                    item in
                    Text(item)
                }
            }
            }
        }
    }

在这里插入图片描述
再加入新的变量

 //第一个100固定,第二个尽量填满
    let columnsFixed100 = [
        GridItem(.fixed(100)),
        GridItem(.flexible()),
    ]

body内新增section

Section(header: Text("第一个固定100")){
            LazyVGrid(columns: columnsFixed100, spacing: 20){
                ForEach(text, id: \.self){
                    item in
                    Text(item)
                }
            }
        }

在这里插入图片描述
理论上讲只要是view都可以适用,也就是说把Text换成Button毫无压力。

Section(header: Text("第一个固定100")){
            LazyVGrid(columns: columnsFixed100, spacing: 20){
                ForEach(text, id: \.self){
                    item in
                    Button(item){
                        print("itme pressed")
                    }
                }
            }
        }

在这里插入图片描述

LazyHGrid
水平Grid

	//水平
    let items = 1...10
    //一列两个,最小高度50
     let rows = [
            //GridItem(.fixed(40))
            GridItem(.flexible(minimum: 50)),
            GridItem(.flexible(minimum: 50))
            
        ]

再增加body内的section
在这里插入图片描述

【课程特点】1、231节大容量课程:包含了SwiftUI的大部分知识点,详细讲解SwiftUI的方方面面;2、15个超级精彩的实例:包含美食、理财、健身、教育、电子商务等各行业的App实例;3、创新的教学模式:手把手教您SwiftUI用户界面开发技术,一看就懂,一学就会;4、贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;5、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;6、视频短小精悍:即方便于您的学习记忆,也方便日后对功能的检索;7、齐全的学习资料:提供所有课程的源码; 更好的应用,更少的代码!SwiftUI是苹果主推的下一代用户界面搭建技术,具有声明式语法、实时生成界面预览等特性,可以为苹果手机、苹果平板、苹果电脑、苹果电视、苹果手表五个平台搭建统一的用户界面。SwiftUI是一种创新、简单的iOS开发中的界面布局方案,可以通过Swift语言的强大功能,在所有的Apple平台上快速构建用户界面。 仅使用一组工具API为任何Apple设备构建用户界面。SwiftUI具有易于阅读自然编写的声明式Swift语法,可与新的Xcode设计工具无缝协作,使您的代码设计**同步。自动支持动态类型、暗黑模式、本地化可访问性,意味着您的**行SwiftUI代码已经是您编写过的非常强大的UI代码了。 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值