如何使用 SwiftUI 交替行?
Posted
技术标签:
【中文标题】如何使用 SwiftUI 交替行?【英文标题】:How to alternate rows using SwiftUI? 【发布时间】:2019-10-08 12:01:56 【问题描述】:当我在摆弄 SwiftUI 时,我想知道如何让水平的 ScrollView
具有 2 个交替行。
我在使用我的示例时收到以下消息:
编译器无法在合理的时间内对该表达式进行类型检查;尝试将表达式分解为不同的子表达式
import SwiftUI
struct LabelFilter: View
var allLabels = ["one", "two", "three", "four", "five", "six", "seven"]
var body: some View
ScrollView(.horizontal, showsIndicators: false)
VStack
HStack
ForEach(allLabels.indices) index in
if (index % 2 == 0)
LabelButton(label: self.allLabels[index])
.padding()
HStack
ForEach(allLabels.indices) index in
if (index % 2 == 1)
LabelButton(label: self.allLabels[index])
.padding()
为什么会发生这种情况,如何解决,是否有更好的解决方案?
【问题讨论】:
【参考方案1】:这段代码编译:
struct LabelFilter: View
var allLabels = ["one", "two", "three", "four", "five", "six", "seven"]
var evenLabels: [String]
stride(from: 0, to: allLabels.count, by: 2).map allLabels[$0]
var oddLabels: [String]
stride(from: 1, to: allLabels.count, by: 2).map allLabels[$0]
var body: some View
ScrollView(.horizontal, showsIndicators: false)
VStack
HStack
ForEach(oddLabels, id: \.self) label in
Text(label)
.padding()
HStack
ForEach(evenLabels, id: \.self) label in
Text(label)
.padding()
【讨论】:
以上是关于如何使用 SwiftUI 交替行?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 NSPredicateEditor/NSRuleEditor 背景设置为交替行?
SwiftUI - 如何在编辑模式下避免列表中的行缩进,但不使用 onDelete? (附代码/视频)