SwiftUI - 填充修饰符上的三元运算符会使程序崩溃
SwiftUI - Ternary operator on padding modifier crashes program
我在 SwiftUI 中有一个 ZStack,里面装满了 ForEach 提供的一些组件,如下所示:
ForEach(0..<arr.count) { i in
ZStack {
...
}
// I use i later in this code
...
}
程序就这样完美运行
但我只想在 i == 0
时向 ZStack
添加填充,所以我尝试将此修饰符添加到 ZStack:.padding(.top, i == 0 ? 70 : 0)
当我尝试使用此修改器构建它时,它失败了,但甚至没有说“构建失败”。尝试构建大约需要 5 分钟(通常需要 5 秒)然后决定崩溃。谁能解释为什么会这样,以及我如何在不破坏我的程序的情况下获得这个条件填充?
试试这个:
ForEach(0..<arr.count) { i in
ZStack {
...
}
.padding(.top, getPadding(i))
// I use i later in this code
...
}
func getPadding(_ i: Int) -> CGFloat {
if i == 0 {
return CGFloat(70)
}
return CGFloat(0)
}
我在 SwiftUI 中有一个 ZStack,里面装满了 ForEach 提供的一些组件,如下所示:
ForEach(0..<arr.count) { i in
ZStack {
...
}
// I use i later in this code
...
}
程序就这样完美运行
但我只想在 i == 0
时向 ZStack
添加填充,所以我尝试将此修饰符添加到 ZStack:.padding(.top, i == 0 ? 70 : 0)
当我尝试使用此修改器构建它时,它失败了,但甚至没有说“构建失败”。尝试构建大约需要 5 分钟(通常需要 5 秒)然后决定崩溃。谁能解释为什么会这样,以及我如何在不破坏我的程序的情况下获得这个条件填充?
试试这个:
ForEach(0..<arr.count) { i in
ZStack {
...
}
.padding(.top, getPadding(i))
// I use i later in this code
...
}
func getPadding(_ i: Int) -> CGFloat {
if i == 0 {
return CGFloat(70)
}
return CGFloat(0)
}