【发布时间】:2020-12-15 11:38:34
【问题描述】:
我想根据单元格的编号更改ArticleListElementView。例如我在ScrollView 中有 10 个单元格,如果单元格编号为奇数,则显示 Rectangle(),如果单元格编号为偶数,则为 0 2 4 6 8,则隐藏 Rectangle()。所以我想我可以在ForEach() 中将cellNumber var 增加1,但它给了我一个错误。那么我该怎么做呢?
struct ArticleView: View {
@ObservedObject var service = ArticleService()
var cellNumber: Int = 0
var body: some View {
ScrollView(.vertical, showsIndicators: false) {
LazyVGrid(columns: columns, spacing:0) {
ForEach(service.articlePost, id: \.article_id) { post in
ArticleListElementView(articlePost: post)
.onTapGesture {
self.shown = true
self.selectedArticle = post
}
cellNumberRead()
}
}
}
}
func cellNumberRead() {
cellNumber = cellNumber + 1
}
struct ArticleListElementView: View {
var articlePost: ArticlePost
var body: some View {
ZStack{
Color("Background")
.edgesIgnoringSafeArea(.all)
HStack {
// if articlePost.cellNumber == I want to check cellNumber in here and draw a line else do not draw rectangle
Rectangle()
.frame(width: 0.5, height: width)
}
这是错误
【问题讨论】:
-
我添加了错误截图。
-
如果我删除 cellNumberRead() 那么它工作正常。
-
看,Asperi 知道该怎么做。不要责怪我的编码技巧=)