SwiftUI - 带有静态单元格的 QGrid
SwiftUI - QGrid with static cells
我正在使用这个允许网格的 SwiftUI 包:
https://github.com/Q-Mobile/QGrid
我试图制作一个没有数据的简单网格(静态单元格),但出现以下错误。
Xcode 11 测试版 5
卡特琳娜贝塔 5
我的代码:
import QGrid
import SwiftUI
struct GridView: View {
var body: some View {
QGrid(columns: 4, { ProductCell() }
}
}
#if DEBUG
struct GridView_Previews : PreviewProvider {
static var previews: some View {
GridView()
}
}
#endif
为什么我会收到这样的错误?
您不能使用包创建没有数据的网格。如果你看它的代码,只有一个 QGrid
初始化器,它需要数据。
这是一个最小的例子:
import QGrid
import SwiftUI
struct Item: Identifiable {
let id = UUID()
let name: String
}
struct ContentView: View {
let array = [Item(name: "Name #1"), Item(name: "Name #2"), Item(name: "Name #3"), Item(name: "Name #4"), Item(name: "Name #5")]
var body: some View {
QGrid(array, columns: 3) { value in
MyCell(item: value)
}
}
}
struct MyCell: View {
let item: Item
var body: some View {
Text("\(item.name)")
}
}
您可能使用了伪数组并在绘制单元格时忽略了数据。但是你需要包裹吗?另请注意,QGrid 知道要绘制多少个单元格,因为 array.count
.
这将是一个伪数组:
struct Item: Identifiable { let id = UUID() }
struct ContentView: View {
let array = Array<Item>(repeating: Item(), count: 5)
var body: some View {
QGrid(array, columns: 3) { value in
MyCell()
}
}
}
我正在使用这个允许网格的 SwiftUI 包: https://github.com/Q-Mobile/QGrid
我试图制作一个没有数据的简单网格(静态单元格),但出现以下错误。
Xcode 11 测试版 5 卡特琳娜贝塔 5
我的代码:
import QGrid
import SwiftUI
struct GridView: View {
var body: some View {
QGrid(columns: 4, { ProductCell() }
}
}
#if DEBUG
struct GridView_Previews : PreviewProvider {
static var previews: some View {
GridView()
}
}
#endif
为什么我会收到这样的错误?
您不能使用包创建没有数据的网格。如果你看它的代码,只有一个 QGrid
初始化器,它需要数据。
这是一个最小的例子:
import QGrid
import SwiftUI
struct Item: Identifiable {
let id = UUID()
let name: String
}
struct ContentView: View {
let array = [Item(name: "Name #1"), Item(name: "Name #2"), Item(name: "Name #3"), Item(name: "Name #4"), Item(name: "Name #5")]
var body: some View {
QGrid(array, columns: 3) { value in
MyCell(item: value)
}
}
}
struct MyCell: View {
let item: Item
var body: some View {
Text("\(item.name)")
}
}
您可能使用了伪数组并在绘制单元格时忽略了数据。但是你需要包裹吗?另请注意,QGrid 知道要绘制多少个单元格,因为 array.count
.
这将是一个伪数组:
struct Item: Identifiable { let id = UUID() }
struct ContentView: View {
let array = Array<Item>(repeating: Item(), count: 5)
var body: some View {
QGrid(array, columns: 3) { value in
MyCell()
}
}
}