List 的使用

news2024/12/23 8:52:09

1. List 列表视图实现增删改操作

/// 列表视图
struct ListBootcamp: View {
    /// 水果
    @State var fruits: [String] = [
        "apple", "orange", "banana", "peach"
    ]
    
    /// 蔬菜
    @State var veggies: [String] = [
        "tomato", "potato", "carrot"
    ]
    
    var body: some View {
        /// 导航控制器
        NavigationView{
            List{
                Section {
                    ForEach(fruits, id: \.self) { fruit in
                        Text(fruit.capitalized) // capitalized: 以单词形式显示
                            .font(.caption)
                            .foregroundColor(.white)
                        //.frame(maxWidth: .infinity, maxHeight: .infinity)
                        //.background(Color.red)
                            .padding(.vertical)
                    }
                    // 删除行
                    .onDelete(perform: deleted)
                    // 移动行
                    .onMove(perform: moved)
                    // 列表行背景
                    .listRowBackground(Color.blue)
                } header: {
                    HStack {
                        Text("Fruits")
                        Image(systemName: "flame.fill")
                    }
                    .font(.headline)
                    .foregroundColor(.orange)
                }
                
                Section {
                    ForEach(veggies, id: \.self) { veggie in
                        Text(veggie.capitalized)
                    }
                } header: {
                    Text("Veggies")
                        .font(.headline)
                        .foregroundColor(.purple)
                }
            }
            .accentColor(.purple)
            //.listStyle(.sidebar)
            //.navigationBarHidden(false)
            .navigationTitle("Grocery List")
            .navigationBarItems(leading: EditButton(), trailing: addButton)
        }
        .accentColor(.red)
    }
    
    // 添加按钮
    var addButton: some View{
        Button("Add") {
            add()
        }
    }
    
    // 删除行
    func deleted(indexSet: IndexSet){
        fruits.remove(atOffsets: indexSet)
    }
    
    // 移动行
    func moved(indices: IndexSet, newOffset: Int){
        fruits.move(fromOffsets: indices, toOffset: newOffset)
    }
    
    // 添加行
    func add(){
        fruits.append("Coconut")
    }
}

2. 效果图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【笔试强训编程题】Day4.(计算糖果 46579 ) 和(进制转换 58541)

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训编程题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

如何在Moonbeam DAPP质押GLMR

Moonbeam自上线以来一直稳步成长,并致力于为以太坊生态的项目提供一个进入波卡生态的入口。Moonbeam的官方质押Dapp于今年3月迎来一次大改版,旨在为用户提供更直观的质押操作体验。了解升级版Dapp详情,请阅读此文章。 当然大家最关心也是如何…

JavaEE 简单前后端分离小项目 - 表白墙

plus版表白墙!✿✿ヽ(▽)ノ✿ 文章目录 JavaEE & 简单前后端分离小项目 - 表白墙1. body格式约定 - 应用层协议2. 后端处理请求2.1 模板2.2 doGet方法2.3 doPost方法 3. 前端制作请求并解析响应3.1 原前端页面的代码3.2 刷新时发送GET请求3.3 点击发送时构造Pos…

Photoshop 2023 v24.5/24.6beta版「支持M1、支持神经滤镜、FireflyAI 新功能」

24.6beta试用FireflyAI 新功能,需要外网ID, 并且要先试用,后激活 psv24.5支持神经滤镜,激活前需要登录Adobe账号试用,退出后再去运行激活补丁! Photoshop 2023 v24.5/24.6beta版「支持M1、支持神经滤镜、FireflyAI 新…

【开源项目】ChatGPT智能聊天系统后台管理解析

ChatGPT是likeshop近期新研发出来的一款AI智能聊天对话的产品,此系统是基于likeadmin-PHP开发的智能对话系统,ChatGPT是一种基于人工智能技术的聊天机器人,它可以与用户进行自然语言对话,提供各种服务和答案。ChatGPT的核心技术是…

海绵城市智慧监测系统功能、适用范围有哪些?

一、海绵城市在线监测系统拓扑图 海绵城市在线监测系统是通过RTU使用3G/4G信号进行无线传输等方式,将温度、水位、风速、风向、雨量、色度、浊度等数据传输到在线监测平台。经过软件平台的系统性处理后再通过LED显示屏直观、快捷的展现给用户。用户也可以通过电脑、…

【Unity Optimize】Unity中的优化工具和优化方法介绍

目录 1 Unity项目优化的必要性2 Unity自带的优化工具2.1 Profiler窗口Profile Analyzer 2.2 Stats窗口2.3 Frame Debugger窗口 3 其他优化方法3.1 批处理(Batching)3.2 内存管理(Memory Handling)3.3 对象池(Object Po…

linux部署mysql服务

记录阿里云服务器linux上部署mysql服务。 文章目录 1. 下载rpm包2. 上传解压rpm包3. 安装rpm包4. 启动mysql服务5. 修改root的密码6. 创建远程连接用户7. 检查防火墙8. 阿里云安全组开放3306端口9. 远程连接10. 停止数据库服务 1. 下载rpm包 mysql下载rpm包,链接&…

性能测试如何入门?熬夜7天整理出这一份3000字超全学习指南

赶鸭子上架要我搞性能测试,怎么办? 我第一次真正意义上搞性能测试是在2014年。项目组要求搞性能测试,我之前也没搞过,对服务端也不熟悉。就那么一脸懵逼地开始搞性能。当时我连linux上有哪些能看系统资源的命令都不知道。稀里糊涂…

是否应该学习Qt作为主要编程语言C/C++的补充?

如果您以C/C作为主要编程语言,学习Qt是一个不错的选择。主要还是学习Qt的思想。 在初期阶段,您可以学习如何使用Qt设计界面。您可以使用Qt Designer拖拽控件,这样做比较直观。当然,您也可以手写代码实现界面。 Qt目前主要提供了…

第十八篇、基于Arduino uno,获取手势识别传感器的信号——结果导向

0、结果 说明:该传感器模块集手势识别和触摸检测功能于一体,提供0~30cm以内的可调检测范围。它可以检测 5 向触摸信号和 7 种手势:向左移动、向右移动、向前移动、向后移动、向上拉、向下拉、拉和移除。 1、外观 说明:虽然手势…

Web安全:拿到 Web 服务器 最高权限.(vulntarget 靶场 1)

Web安全:拿到 Web 服务器 最高权限. Web 服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据…

软考A计划-网络规划设计师-学习笔记-下

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

从零开始Vue3+Element Plus后台管理系统(18)——权限路由实现

一开始打算做两种模式的路由权限,最后还是分成了3种,分别是: 前端固定路由,所有路由是固定的,通过权限过滤菜单和显示前端动态路由,通过权限过滤路由表和菜单后端动态路由,获取接口返回数据&am…

什么工程项目管理软件好用?

工程项目比较多,经常忘记项目的进度,想要可以查看项目进展的项目管理软件? 大多数时候,面对项目进度没有头绪,看不懂,无法把握;根本原因不在于题主所说的,是否缺少一张合适的项目进…

你必须知道的常用的足够简练的Python代码

许多程序员喜欢Python,因为它的语法简单简洁。下面提供的这些 Python 代码足够简练,可用于解决常见问题。 1.提取字典的键值对 dict1 {A:33, B:43, C:88, D:56} # 提取字典中值大于50的键值对 dict2 { key:value for key, value in dict1.items() if …

curl 命令-接口测试

curl 命令-接口测试 JUST DO IT 温暖春日 在linux/Unix 为代表的os上, 对后端进行测试, 模拟连接请求都会书写脚本 场景: 在Linux 上接口测试工具有ab, restClient, postman等, 最常用的方法是curl进行简单测试 curl是非常方便的Rest 客户端, 可以很方便的完成 Rest API测…

Hadoop教程第一章之Hadoop简介

1. Hadoop是什么 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。主要解决,海量数据的存储和海量数据的分析计算问题。广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。 2. Hadoop的三大发行版本 Apache版本最原始&#xff08…

Python读取SD卡二进制数据

在我们使用 STM32 或者 FPGA 采集数据的时候,需要将数据存储到SD卡中,因为数据是按照地址存储的,并且没有文件结构,所以不能直接用电脑的文件管理器读取,下面是一种读取数据的办法 实验平台 正点原子STM32F407ZG探索…

现代化智能十防一体化智慧档案馆平台所具备的必要功能

现代化智能档案室的建设以物联网技术为支撑,包括智能密集架、恒温恒湿消毒净化设备、温湿度传感器、空气质量传感器、空气净化消毒设备、红外防盗设备、门禁设备、防火设备、漏水设备、预警设备、视频监控设备等,集中为一体的管理平台为智能档案室集成平…