SwiftUI - 带有静态单元格的 QGrid
Posted
技术标签:
【中文标题】SwiftUI - 带有静态单元格的 QGrid【英文标题】:SwiftUI - QGrid with static cells 【发布时间】:2019-08-11 13:15:59 【问题描述】:我正在使用这个 SwiftUI 包,它允许网格: https://github.com/Q-Mobile/QGrid
我正在尝试制作一个没有数据的简单网格(静态单元格),但出现以下错误。
Xcode 11 测试版 5 Catalina Beta 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
为什么会出现这样的错误?
【问题讨论】:
【参考方案1】:您不能使用该包创建没有数据的网格。如果你看它的代码,只有一个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)")
在绘制单元格时,您可以使用虚假数组并忽略数据。但是你需要那个包吗?另请注意,由于array.count
,QGrid 知道要绘制多少个单元格。
这将是一个伪造的数组:
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()
【讨论】:
更新添加了一个伪造的数组,例如。 谢谢@kontiki!现在将使用您的建议,然后在我设置数据结构时更改。以上是关于SwiftUI - 带有静态单元格的 QGrid的主要内容,如果未能解决你的问题,请参考以下文章
带有静态单元格的 UITableViewController 显示为空白
为啥在将单元格插入带有静态单元格的表格视图时需要 tableView(_:indentationLevelForRowAt:)
MonoTouch 如何为带有静态单元格的 UITableViewController 实现 RowSelected