SwiftUI--List View全攻略

本文详细介绍了如何在SwiftUI中使用List View,包括创建静态和动态数据列表、设置左滑删除、添加section分组、实现点击cell跳转等功能。SwiftUI的List相比UITableView更加简洁高效,无需手动注册cell,通过遵守Identifiable协议即可动态生成视图。同时,文章还展示了如何实现实时数据更新和页面跳转,是学习SwiftUI List View的好资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SwiftUI的List View和UIKit中的UITableView很相似,它可以根据你的需求加载静态或者动态数据。不同的是,List使用起来更加的简单:我们不需要在storyboard或者Xib中创建cell,也不需要使用代码注册cell,不需要告诉它要有多少行内容,当然也不需要dequeue cell以及手动设置cell等等。

一、创建一个静态数据列表

想要创建一个静态数据列表,你首先需要确定每一个cell的样式。我们可以自定义一个简单的cell,代码如下:

struct StreetRow: View {
   
    
    var name: String
    
    var body: some View {
   
        Text("The street name is \(name)")
    }
}

这样我们就定义了一个简单的cell,cell上只有一行文字,现在可以创建一个List View,并添加你需要的数量的cell,像这样:


struct ListViewDemo: View {
   
    var body: some View {
   
        List{
   
            //当然可以有多种不同的Row哦
            StreetRow(name: "The Lodon Street")
            StreetRow(name: "The Joe's Street")
            StreetRow(name: "The House Street")
        }
    }
}

在这里插入图片描述
这样就创建了一个最简单的列表,这里不得不说swiftUI确实是强大,短短几行代码就可以创建出UITableView需要书写大量代码才能看到的效果。

二、创建一个动态数据列表

如果想动态的生成items,比如根据接口返回的数据生成列表,就需要用到动态列表。按照UIKit中的习惯,首先我们需要一个model存储这些数据,SwiftUI也类似,我们需要创建一个Street的结构体,并遵循Identifiable协议,此协议中只有一个必须的属性:id,它用来让SwiftUI区分不同的item。

struct Street: Identifiable {
   
    var id = UUID()
    var name: String
}

这里我们给id初始化为UUID():

UUID: which can be used to uniquely identify types, interfaces, and other items.
UUID可以被用来作为不同item的标记,这样swiftUI就知道当前是哪个

接下来需要修改StreetRow的内容:

struct StreetRow: View {
   
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值