variables - 如何使用 ForEach SwiftUi 向 HStack 添加元素
问题描述
我对 Swift 相当陌生,我正在尝试生成元素的 HStack(将在进度条中使用)并能够使用按钮添加元素。我不确定是否应该在 ForEach(1..<Variable) 部分中使用变量或使用其他方法。这是我到目前为止的代码,但它不起作用。
struct ContentView: View {
@State var fill : CGFloat = 0
@State var NumberOfCircles : Int = 0 var body: some View {
HStack(spacing:100) {
ForEach(0..<NumberOfCircles){ _ in
MyShape()
}
Button(action: {NumberOfCircles = 5}, label: {
Text("Button")
})
}
解决方案
我不确定你的问题是什么,但我测试了这段代码并且它有效:
struct ContentView: View {
@State var numberOfCircles = 1
var body: some View {
VStack {
HStack {
ForEach(0..<numberOfCircles, id:\.self) { _ in
Circle()
.frame(width: 30, height: 30)
}
}
Button { numberOfCircles = 5 } label: {
Text("Add Circles")
}
}
}
}
顺便说一句,Swift 中变量的命名约定是 camelCase。这意味着声明一个变量你应该命名它numberOfCircles
,而不是NumberOfCircles
. 第一个大写字母保留用于命名类、结构和协议。
推荐阅读
- ruby - 指示 Ruby SSH 客户端使用已弃用的密码
- java - 将 long time 转换为 Double
- python - 使用 ffmpeg 将 g729 立体声 WAV 音频文件解码为任何可播放格式
- python - Python比较两列
- mysql - ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册
- html - 如何设计一个像这个有角度的图像的html表格?
- statistics - 治疗变量的定义是什么?治疗变量和自变量之间的差异
- php - 如何从单词错误到第一个逗号','创建一个子字符串?
- docker - Docker 映像构建失败,出现错误“不允许操作”
- javascript - 仅检测 uBlock Origin 广告拦截器 (Vue)