SwiftUI Foreach中如何使用Toggle组件
创始人
2025-05-30 21:37:55
0

最近有一个需求,在一个界面中显示一个列表,列表中多个cell的右边要显示一个Toggle,也就是UIKit中的UISwitch开关,我们知道Toggle组件需要绑定一个变量的,但是列表数据是从服务器取的,要用多少个Toggle组件不可知,所以如何记住这些Toggle的值呢?

如果用一个变量绑定所有的Toggle,那么这些Toggle就是同开同关了,显然不行。下面来看一下具体实现。

Foreach组件

Foreach组件是SwiftUI中的一个非常强大的组件。它可以用来遍历一个集合,并为集合中的每个元素创建一个视图。以下是一个使用Foreach组件的示例:

struct ContentView: View {let books = ["Book1", "Book2", "Book3"]var body: some View {ForEach(books, id: \.self) { book inText(boks)}}
}

在上面的示例中,我们创建了一个名为books的字符串数组,并使用Foreach组件遍历了该数组。我们还指定了id参数,用于确定集合中每个元素的唯一性。

Toggle组件

Toggle组件是SwiftUI中的另一个非常有用的组件。它可以用来创建一个开关,使用户可以切换某个设置的状态。以下是一个使用Toggle组件的示例:

struct ContentView: View {@State var isOn = falsevar body: some View {Toggle("Toggle", isOn: $isOn)}
}

在上面的示例中,我们创建了一个名为isOn的布尔值状态,并使用Toggle组件来创建了一个开关。我们还使用了$符号来绑定Toggle组件的值到我们的状态变量上。

在Foreach中使用Toggle组件

现在我们已经了解了如何在SwiftUI中使用Foreach和Toggle组件,让我们来看看如何将它们结合起来。以下是一个在Foreach中使用Toggle组件的示例:

struct ContentView: View {@State var books = [BookModel(name: "Book1", isSelected: false),BookModel(name: "Book2", isSelected: false),BookModel(name: "Book3", isSelected: false)]var body: some View {VStack {ForEach(0..

在上面的示例中,我们创建了一个名为books的BookModel数组,并在Foreach中遍历它。我们还为每个Toggle组件提供了一个状态变量,以便用户可以更改每个book的isSelected状态。

注意,这里在遍历的时候我们使用的索引遍历,而非直接遍历books,如果直接遍历boos,那么在闭包里面获取到的book,我们无法直接将book的isSelected绑定到Toggle上,系统会报错的。因此我们通过`$books[index].isSelected`进行绑定。

结论

在SwiftUI中,我们可以使用Foreach和Toggle组件来创建动态的UI界面。在本文中,我们介绍了如何在Foreach中使用Toggle组件,并为每个book提供了一个状态变量。

希望这篇文章能够帮助你更好地理解SwiftUI中的Foreach和Toggle组件。

相关内容

热门资讯

安卓系统双清详图解,恢复出厂设... 你有没有遇到过手机卡顿、运行缓慢的问题?别急,今天就来给你详细解析一下安卓系统的“双清”操作,让你的...
召唤抽奖系统安卓直装,轻松体验... 你知道吗?现在市面上有一种特别火的玩意儿,那就是召唤抽奖系统安卓直装。是不是听起来就让人心动不已?没...
系统工具箱安卓2.3,深度解析... 你有没有发现,手机里的那些小工具,有时候就像是个神奇的百宝箱呢?今天,就让我带你一探究竟,看看安卓2...
华硕平板安卓刷机系统,解锁性能... 亲爱的数码爱好者们,你是否曾为你的华硕平板安卓系统感到厌倦,想要给它来一次焕然一新的体验呢?那就跟着...
鸿蒙系统与安卓怎么区别,差异解... 你有没有发现,最近手机圈子里有个大热门,那就是鸿蒙系统和安卓系统的区别。这两位“系统大侠”各有各的绝...
红帽系统怎么刷回安卓,红帽系统... 你是不是也和我一样,对红帽系统刷回安卓充满了好奇?别急,今天就来给你详细揭秘这个过程,让你轻松上手,...
ios安卓联想三系统,全面解析... 你有没有发现,现在的手机市场真是热闹非凡呢!各种操作系统轮番登场,让人眼花缭乱。今天,就让我带你来聊...
安卓调用系统相机并存盘,And... 你有没有想过,手机里的照片和视频,是怎么被我们随手拍下,又神奇地存到手机里的呢?今天,就让我带你一探...
安卓4.0原生系统下,引领智能... 你有没有发现,安卓4.0原生系统下,手机的使用体验简直就像打开了新世界的大门?今天,就让我带你一起探...
安卓c13系统,创新功能与性能... 你知道吗?最近安卓系统又来了一次大更新,那就是安卓C13系统。这可不是一个小打小闹的更新,而是带来了...
鸿蒙3.0脱离安卓系统,开启全... 你知道吗?最近科技圈可是炸开了锅,因为华为的新操作系统鸿蒙3.0横空出世,竟然宣布要脱离安卓系统,这...
安卓怎么应对苹果系统,安卓系统... 你知道吗?在智能手机的世界里,安卓和苹果就像是一对相爱相杀的恋人。安卓系统,这位多才多艺的“大众情人...
安卓系统如何开橱窗教程,安卓系... 你有没有想过,你的安卓手机里也能开个橱窗,展示那些你心爱的宝贝?没错,就是那种可以随时翻看、随时分享...
安卓系统软件APK,深入探究安... 你有没有发现,手机里的那些好玩的应用,其实都是靠一个小小的文件来“住”进去的?没错,就是安卓系统里的...
css安卓系统line-hei... 你有没有发现,在使用安卓手机的时候,有时候文字看起来会有些挤,不够舒展呢?这可真是让人头疼的小问题。...
如何换桌面安卓系统,轻松切换个... 你是不是也和我一样,对安卓系统的桌面换换口味,想要来点新鲜感呢?那就跟我一起探索如何轻松给安卓桌面来...
安卓移动到系统目录lib,An... 你有没有想过,你的安卓手机里那些神秘的系统目录里藏着什么秘密?今天,就让我带你一探究竟,揭开安卓移动...
安卓系统神器软件下载,畅享智能... 你有没有发现,手机里装满了各种应用,但总有一些神器级的软件,让你的生活和工作变得轻松愉快呢?今天,就...
安卓系统怎么创小号教程,安卓系... 你是不是也和我一样,对安卓系统的小号功能充满了好奇?想要在同一个设备上玩转多个账号,但又不知道怎么操...
华为安卓9.0系统图库,探索创... 你知道吗?最近华为出了一款搭载安卓9.0系统的手机,那叫一个火啊!这款手机不仅外观时尚,性能强大,而...