SwiftUI基础:List+ ForEach以及初步认识NavigationView、NavigationStack

SwiftUI基础:List + ForEach 以及初步认识 NavigationView 和 NavigationStack

本节目标

在上节中,我们已经初步了解了SwiftUI List的基础用法

在本节中,我们将继续学习如何使用 ListForEach 来展示数据列表,并初步认识 导航栏NavigationViewNavigationStack

我们最终要实现的效果:

主页 编辑模式 滑动删除

一、 List + ForEach 基本使用

List 是用来展示可滚动的列表视图,而 ForEach 是用来遍历数据并生成相应的视图。我们可以结合这两个组件来显示动态数据列表。

1. 代码示例:

import SwiftUI

struct ContentView: View {
   
   
    /// 数据源,存储水果名称
    @State private var items = ["苹果", "香蕉", "橙子", "葡萄", "西瓜"]

    var body: some View {
   
   
        VStack {
   
   
            List {
   
   
                /// 使用 ForEach 循环绑定数据源
                ForEach(items, id: \.self) {
   
    item in
                    HStack {
   
   
                        Text(item)  // 显示水果名称
                        Spacer()    // 占据剩余空间,将文本和其他元素分隔
                    }
                }
            }
        }
    }
}

#Preview {
   
   
    ContentView()
}

基础页面

2.为什么要使用ForEach

之前的节程直接使用List就可以实现,为什么我们还要用ForEach呢?

SwiftUI 中,List 可以单独使用,也可以和 ForEach 配合使用。这两种方式各有优缺点,具体选择取决于需求和场景。

List的特点:

List 是一个容器视图,专门用于展示一组数据,它可以直接接收一个数据源并渲染每个数据项的视图。会自动生成每个数据项的视图,通常配合ForEach 来实现动态数据渲染,尤其是在数据项数量不确定的情况下

ForEach的特点:

ForEach 是一个用于在视图中循环迭代数据并生成对应视图的结构。它通常用于嵌套在 List或其他容器视图中。不会直接展示列表,而是通过指定数据源来渲染每个元素

特性 List ForEach
用法 用于展示一个数据集合,并自动处理滚动和视图渲染 用于在视图中创建可迭代的子视图
是否支持滚动 支持自动滚动,可展示大量数据 不直接支持滚动,通常用于 List 内部
数据源 可以接受一个数据源并直接渲染 需要和一个容器视图(如 List)配合使用
自动处理行数 自动根据数据项数量生成行 需要手动指定数据源,且用于生成多个子视图

通过特性对比,我们可以发现二者之间比较明显的差异。

List更适合数据结构简单无需插入其他视图对列表进行复杂处理 的场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

函数的彼端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值