I want to change ArticleListElementView according to the number of the cell. Such as I have 10 cells in ScrollView and if the cell number is odd as 1 3 5 7 9 show Rectangle() if the cell number is even as 0 2 4 6 8 hide the Rectangle(). So I thought I can increment my cellNumber var by 1 in ForEach() but it gives me an error. So how can I do this?
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)
}
Here is the error
