在XCode 11 beta 4上,以下内容似乎已被弃用,我不知道该如何重写。有人知道怎么用ForEach(_:id:)吗?
@State private var showTargets = [
(id: 1, state: false, x: 109.28, y: 109.28),
(id: 2, state: false, x: 683, y: 109.28),
(id: 3, state: false, x: 1256.72, y: 109.28)
]
Run Code Online (Sandbox Code Playgroud)
...
var body: some View {
HStack {
ForEach(showTargets.identified(by: \.id)) { item in
Text(String(item.x))
}
}
Run Code Online (Sandbox Code Playgroud)
rra*_*ael 15
(仍可使用Xcode 11.0 / Swift 5.1)
我尚未下载Xcode Beta 4,但是根据文档,它应该类似于:
ForEach(showTargets, id: \.id) { item in
Text(String(item.x))
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用struct符合的Identifiable(请注意,这不适用于元组,因为您无法添加协议符合性):
struct Targets: Identifiable {
var id: Int
var state: Bool
var x: Double
var y: Double
}
let showTargets = [
Targets(id: 1, state: false, x: 109.28, y: 109.28),
Targets(id: 2, state: false, x: 683, y: 109.28),
Targets(id: 3, state: false, x: 1256.72, y: 109.28)
]
ForEach(showTargets) { item in
Text(String(item.x))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2665 次 |
| 最近记录: |