首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在SwiftUI List中仅显示选中的项目?

在SwiftUI中,可以使用List视图来显示一个项目列表。如果想要仅显示选中的项目,可以通过在List中使用ForEach来筛选出选中的项目,并将它们作为列表项进行显示。

以下是一个示例代码,演示了如何在SwiftUI List中仅显示选中的项目:

代码语言:txt
复制
import SwiftUI

struct ContentView: View {
    @State private var selectedItems: [String] = []
    let items = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"]

    var body: some View {
        List {
            ForEach(items, id: \.self) { item in
                if selectedItems.contains(item) {
                    Text(item)
                }
            }
        }
        .onTapGesture {
            // 在这里处理项目的选中状态
            // 这里只是一个示例,可以根据实际需求进行修改
            if selectedItems.contains("Item 1") {
                selectedItems.removeAll(where: { $0 == "Item 1" })
            } else {
                selectedItems.append("Item 1")
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

在这个示例中,我们使用@State属性包装了一个selectedItems数组,用于存储选中的项目。在List中,我们使用ForEach来遍历items数组,并通过if条件判断来筛选出选中的项目进行显示。

.onTapGesture闭包中,我们处理了项目的选中状态。这里只是一个示例,当点击列表项时,如果selectedItems数组中已经包含了该项目,则将其从数组中移除;否则,将其添加到数组中。

这样,当我们运行这个示例时,只有选中的项目会在列表中显示出来。

请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行修改和扩展。同时,这个示例中没有涉及到云计算相关的内容,如果需要了解更多关于云计算的知识,可以参考腾讯云的相关文档和产品介绍。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

优化在 SwiftUI List 显示大数据集响应效率

本文将通过一个优化列表视图案例,展现在 SwiftUI 查找问题、解决问题思路,其中也会对 SwiftUI 视图显式标识、@FetchRequest 动态设置、List 运作机制等内容有所涉及...在 SwiftUI 视图生命周期研究[3] 一文,我对 List 如何对子视图显示进行优化做了一定介绍。...当通过 ForEach 来指定显示标识时,List 会对这些视图显示进行优化,仅在需要显示时才会对其进行实例化。...我们将通过 SwiftUI-Introspect[7] 来实现在 List 滚动到列表两端。...升降序切换 对数据进行降序显示允许使用者手工滚动列表。系统邮件、备忘录等应用均采用此种方式。

9.1K20

SwiftUI TextField进阶——格式与校验

本文为【SwiftUI 进阶】系列文章一篇,在本文中,我将介绍如何在TextField实现如下功能: •屏蔽无效字符•判断录入内容是否满足特定条件•对录入文本实时格式化显示 textfieldDemo1...如何在TextField实现格式化显示 现有格式化方法 在SwiftUI 3.0,TextField新增了使用新老两种Formatter构造方法。...如何在TextField屏蔽无效字符 现有屏蔽字符方法 在SwiftUI,可以通过设置使用特定键盘类型来实现一定程度上录入限制。...不利于判断用户是否录入新信息(更多信息可参阅如何在SwiftUI创建一个实时响应Form[10])。方案二允许不提供初始值,支持可选值。...本文涉及了TextField部分内容,在【SwiftUI TextField进阶】其他篇幅,我们将探讨更多技巧和思路,让开发者在SwiftUI创建不一样文本录入体验。

8.1K20

Ask Apple 2022 与 SwiftUI 有关问答(下)

Swiftcord[12] 代码展示了如何在 SwiftUI 下实现倒置列表。阅读 优化在 SwiftUI List 显示大数据集响应效率[13] 一文,了解苹果工程师推荐方法。...macOS APIQ:对于运行 Monterey Mac,能否如何在 SwiftUI 实现下面需求建议:打开一个窗口在该窗口中初始化数据找到所有打开窗口确定一个窗口是否打开从不在该窗口视图中关闭一个窗口...Too complex to type checkQ:我在 iOS 14 SwiftUI 遇到一个问题,我试图有条件地显示 3 个符合 Shape 协议对象一个。...然而,两个内容相同视图之间交换并不能使视图顺利地产生动画,因为两者文本也被动画化了。我正在使用禁用 TextField 替代方法,但有没有办法引导动画以使用文档方法?.../[12] Swiftcord: https://github.com/SwiftcordApp/Swiftcord[13] 优化在 SwiftUI List 显示大数据集响应效率: https:/

14.7K30

SwiftUI 创建自适应程序化导航方案

因此在 SwiftUI ,掌握两种导航容器状态表述差异是实现自适应导航方案关键。...必须出现在列代码最上层为了保证在自动转换后仍具备程序化导航能力,NavigationSplitView 对嵌入 List 有严格要求,List 代码必须出现在列代码最上层。...= nil { List(selection: $store.detailID)} else { Text("Empty")}修改状态后,List 仍会用灰色显示上次选中项目即使取消了状态...( 例如修改 contentID ),List 仍会将上次选中状态用灰色选中框进行表示。...有得必有失 —— NavigationSplitView + LazyVStack尽管 List 使用起来很简单,但也有一些不足之处,其中最重要是无法自定义选中状态。

4.2K30

SwiftUI 内容边距

今天,我们将了解 SwiftUI 引入新内容边距概念以及它与安全区域区别。创建示例让我们从一个简单示例开始,演示带有一百个项目的列表。...从字面上看,它是另一个安全区域,适应屏幕大小,但适用于文本内容。不幸是,我们在 SwiftUI 无法访问 readableContentGuide。...你可以在 Playground 运行此代码以查看结果。总结本文介绍了 SwiftUI 内容边距管理,通过对比安全区域概念,解释了内容边距重要性。...随后,通过介绍 UIKit readableContentGuide 布局指南以及 SwiftUI safeAreaPadding 视图修饰符,展示了在 iPad 上适配内容边距方法。...通过本文,读者可以更好地理解并掌握 SwiftUI 内容边距管理技巧。我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

11510

如何让 SwiftUI 列表变得更加灵活

前言 List 可能是 SwiftUI 附带内置视图中最常用一种,它使我们能够在任何 Apple 平台上呈现“类似于表格视图”用户界面。...为了演示这种情况,我们在 List 嵌套一个 ForEach (因为在 SwiftUI ,列表变化一版都是由 ForEach 触发,而不是由 List 触发)。...SwiftUI 中使用,请查看昨天这篇文章[1],不要错过真正重要“在 Swift 认识 async/await[2]”WWDC 会议。...可定制分隔符 自从引入 SwiftUI 以来,开发者们有一个非常普遍要求,提供一个 API ,用于隐藏或以其他自定义实现列表每个 item 之间默认分隔符。...item 上调用,而不是在列表本身上调用,这为我们提供了很大灵活性,可以根据想要构建 UI 类型动态隐藏或显示每个分隔符。

4.8K41

在 Text 实现基于关键字搜索和定位

请阅读 优化在 SwiftUI List 显示大数据集响应效率[6] 以及 避免 SwiftUI 视图重复计算[7] 两篇文章,了解更多有关性能优化方面的内容通过 currentPostion 获取需要滚动到...将搜索结果优先定位于 List 当前显示 transcription 。...为了达成这个目标,我们首先需要记录在 List ,哪些 transcription 正在被显示,以及该 transcription 索引。...了解更多内容,请阅读 SwiftUI 视图生命周期研究[9] 一文优先定位于最靠近屏幕中央搜索结果:/// 从 List 当前显示 transcription 中就近选择 match positionprivate...List 显示大数据集响应效率: https://www.fatbobman.com/posts/optimize_the_response_efficiency_of_List/[7] 避免 SwiftUI

4.2K30

如何结合 Core Data 和 SwiftUI

在此项目中,我们将使用少量 Core Data 功能,但是这种功能将很快扩展——我只想首先了解一下它。...当您创建 Xcode 项目时,我要求您选中 Use Core Data 框,它应该导致对项目的更改: 现在,您有了一个名为 Bookworm.xcdatamodeld 文件。...首先,一些将数组放入List代码: var body: some View { VStack { List { ForEach...更好是,它已经将其添加到 SwiftUI 环境,这就是@FetchRequest属性包装器起作用原因——它使用了环境可用任何托管对象上下文。...这是该项目概述最后一部分,因此,请将您代码重设为初始状态,并确保您从我们数据模型删除了Student实体——我们不再需要它。

11.8K30

SheetKit——SwiftUI模态视图扩展库

请参阅我之前文章——在SwiftUI,根据需求弹出不同Sheet[3]。•新半高模态视图在WWDC 2021,苹果为大家带来了期待已久半高模态视图。...或许推出比较仓促,这种很受欢迎交互方式并没有提供SwiftUI版本,支持UIKit。SheetKit暂时弥补了这个遗憾。...源地址[4] SheetKit每个功能代码都集中在一到两个文件。如果只需要其中部分功能,直接在项目中添加对应文件或许是不错选择。...更多信息请参阅如何在SwiftUI实现interactiveDismissDisabled[5] SheetKitinteractiveDismissDisabled为了兼容bottomSheet.../posts/swiftui-multiSheet/ [4] 源地址: https://github.com/fatbobman/SheetKit.git [5] 如何在SwiftUI实现interactiveDismissDisabled

2.9K20

解析SwiftUI布局细节(二)循环轮播+复杂布局

这篇我们还是说我们关于SwiftUI东西,再提一下Demo代码我已经提交上Git了,目前Demo进度为一级页面基本上结束,地图点击大头针添加也刚处理完,代码有需要小伙伴可以去Git看看,项目地址...具体我们Demo可以看看“我”页面那个 List 代码,问题就在那里。要理解这点麻烦也给我说说,感谢!...有一个还得说明一下,GeometryReader 改变了它显示内容方式。在 iOS 13.5 ,内容放置方式为 .center。在 iOS 14.0 则为:.topLeading。...方式去实现,很多同行有说目前来看SwiftUIList在数据量大情况下性能不是特别好,采用ScrollView是个不错方式,而且也很容易构建出来,并不是说每一个Item位置都需要你去计算,...除了这个List,还要一个From我们也可以了解下,他们俩肉眼可见区别 在选中这个点上区别。

11.8K20

SwiftUI 与 Core Data —— 数据获取

NSFetchedResultsControllerDelegate 协议实例实现方法,以实现在屏幕上显示数据目的。...( State )实现类似的效果。...这是由于一旦 SwiftUI 惰性容器中出现了多个 ForEach ,惰性容器将丧失对子视图优化能力。任何数据变动,惰性容器都将对所有的子视图进行更新而不是更新可见部分子视图。...数据( 因为 WrappedID 存在,我们可以很容易创建 mock 数据 )无论上述哪种方式,开发者都需放弃使用 SwiftUI 原生 Section 功能,在惰性容器,根据提供附加数据自行对数据做分段显示处理...在下一篇文章,我们将探讨如何在 SwiftUI 安全地响应数据,如何避免因为数据意外丢失而导致行为异常以及应用崩溃。希望本文能够对你有所帮助。

4.6K30

Ask Apple 2022 与 SwiftUI 有关问答(上)

上文中提到带 primaryAction 参数 contextMenu 不仅可以用于 List ,而且也可以用于 Table。...锁定 Charts 纵轴刻度Q:我有一个 Swift 图表,通过监听拖动事件实现在拖动过程显示一个 RuleMark。在拖动过程,Y 轴刻度会变大。...阅读 SwiftUI 动画机制[8] 一文,了解更多有关动画内容。自适应高度 SheetQ:如何在 iOS16 呈现与动态内容高度相匹配 Sheet?...image-20221022135326560San Francisco 宽度风格Q:如何在 SwiftUI 如何使用 SF 字体家族新增三种宽度风格( Compressed、Condensed、Expanded...很遗憾,支持 SF,对中文没有效果。阅读 How to change SwiftUI Font Width[18] 一文,了解具体用法。

12.2K20

深入了解 SwiftUI 5 ScrollView 新功能

应将此修饰符应用于 ScrollView 包含主要重复内容布局容器, LazyHStack 或 VStack。...可采用 优化在 SwiftUI List 显示大数据集响应效率[5] 一文中介绍方式来解决。 scrollPostion(id:) 使用此修饰符可以让滚动视图滚动到特定位置。...(视图标识) 不支持锚点设定,固定锚点为子视图 center 正如 优化在 SwiftUI List 显示大数据集响应效率[6] 一文所提到,当数据集很大时,也会出现性能问题。... Safe Area: https://www.fatbobman.com/posts/safeArea/ [5] 优化在 SwiftUI List 显示大数据集响应效率: https://www.fatbobman.com.../posts/optimize_the_response_efficiency_of_List/ [6] 优化在 SwiftUI List 显示大数据集响应效率: https://www.fatbobman.com

69020

SwiftUI 动画机制

在某些场景下,我们可能需要在某一个依赖项(状态)发生改变时,所有依赖于该项目的内容都产生平滑动画(例如代码二),在其他场景,可能又需部分内容产生平滑动画(例如代码一),通过调整 animation..., value: V) 代码位置维度, withAnimation 会影响显示所有与该依赖项关联视图,比如,很难用 withAnimation 实现代码一效果。...{ // 目前无法为 List item 指定 transition ,又一个没有在原始控件很好兼容 SwiftUI 动画例子。...有关显性标识方面的内容可以参阅 优化在 SwiftUI List 显示大数据集响应效率[8] 一文 遗憾与展望 理论上,一旦你掌握了 SwiftUI 动画机制,就应该能轻松地驾驭代码,自由地控制动画...List 显示大数据集响应效率: https://www.fatbobman.com/posts/optimize_the_response_efficiency_of_List/ [9] ViewBuilder

14.6K40

SwiftUI 4.0 全新导航系统

最大区别是,SwiftUI 4.0 为我们提供了在 NavigationSplitView 通过 List 快速绑定数据能力。...4.0 ,在 List 绑定了数据后,通过 List 构造方法创建循环或 ForEach 创建循环中内容( 不能自带点击属性,例如 Button 或 onTapGesture ),将被隐式添加...tag 修饰符,从而具备点击后可更改绑定数据能力 无论将 List 放置在 NavigationSplitView 最左侧一栏( 双栏模式 )还是左侧两栏( 三栏模式 ),都可以通过 List...SwiftUI 4.0 ,将 toolbar 认定范围扩大到了 TabView 。...相当一部分开发者由于版本适配原因并不会使用新 API ,因此,每个人都需要认真考虑如下问题: 如何从新 API 获得灵感 如何在老版本运用编程式导航思想 如何让新老版本程序都能享受系统提供便利

10.2K62

苹果推出 SwiftData,可替代 SwiftUI Core Data

虽然 SwiftUI 所提供 API 让持久化模型定义成为可能,但这种方式却颇为繁琐。...简而言之,@Model 宏会将 @PersistedProperty 应用于 Recipe 类所有属性,并在类实现添加初始化代码和其他必要属性。...此外,将 SwiftUI 视图接入持久化模型只需使用一个新 @Query 属性。...SwiftData 还提供对谓词(Predicate)定义支持,可用于过滤数据。编译时对谓词进行检查,并对类型不匹配问题报编译错误。...为让开发者能更为轻松地迁移至 SwiftData,该框架支持在现有 Core Data 应用逐步采用,在苹果提供演示项目中展示了如何在一个 Core Data 应用部分使用 SwiftData

94830

SwiftUI + Core Data App 内存占用优化之旅

本文将通过对一个演示 App 进行逐步内存优化方式( 由原先显示 100 条数据要占用 1.6 GB 内存,优化至显示数百条数据需 200 多 MB 内存 ),让读者对 SwiftUI 视图存续期...可在 此处 下载本文所需代码 一个内存占用量巨大 App 本节,我们将创建一个在 List 对 Core Data 数据进行浏览演示 App。...尽管从表面上来看,惰性容器会在视图进入可视区域时才会对其进行操作,但一旦该视图被显示过( body 被求过值 ),即使该视图离开可视区域,SwiftUI 仍会保存视图 body 值。...我们可以通过在 onAppear 以及 onDisappear 对图片显示与否( 变量 show )进行控制( 迫使 SwiftUI 对视图 body 重新求值 ),从而减少因上述原因所增加内存占用...数据多份拷贝 当图片数据从 SQLite 经 Core Data 最终通过 SwiftUI 显示时,实际上在内存至少保存了三份拷贝: 行缓存 托管对象上下文( 托管对象被填充后 ) 显示该图片 SwiftUI

2.4K40

SwiftUI + Core Data App 内存占用优化之旅

本文将通过对一个演示 App 进行逐步内存优化方式( 由原先显示 100 条数据要占用 1.6 GB 内存,优化至显示数百条数据需 200 多 MB 内存 ),让读者对 SwiftUI 视图存续期...一个内存占用量巨大 App 本节,我们将创建一个在 List 对 Core Data 数据进行浏览演示 App。...尽管从表面上来看,惰性容器会在视图进入可视区域时才会对其进行操作,但一旦该视图被显示过( body 被求过值 ),即使该视图离开可视区域,SwiftUI 仍会保存视图 body 值。...我们可以通过在 onAppear 以及 onDisappear 对图片显示与否( 变量 show )进行控制( 迫使 SwiftUI 对视图 body 重新求值 ),从而减少因上述原因所增加内存占用...数据多份拷贝 当图片数据从 SQLite 经 Core Data 最终通过 SwiftUI 显示时,实际上在内存至少保存了三份拷贝: 行缓存 托管对象上下文( 托管对象被填充后 ) 显示该图片 SwiftUI

1.2K10

对iOS应用文本进行本地化

本文中,我们将探讨iOS开发,如何实现显示文本本地化工作。本文Demo[2]采用SwiftUI编写。...添加语言 对于当代编程语言和开发环境来说,国际化开发能力都已是必备功能。当我们在Xcode创建一个项目后,缺省情况下,该app针对其对应Development Language进行开发。...xib和storeyboard文件将被移动到Base.lproj文件夹,而字符串元素将被提取到项目区域设置文件夹。该选项针对使用storyboard开发方式,如果你采用SwiftUI则无需关心。...对于UIKit框架,Xcode会让你选择storyboard关联方式,由于本文使用Demo项目[3]为全SwiftUI架构,因此不会有如下画面。...,会针对项目的开发语言,通过右侧Localize...按钮,我们可以选择生成Localizable.strings对应语言(语言列表为项目中添加语言设定列表)文件。

2.1K20
领券