快速在闭包内部使用变量

问题描述

这是我的ContentView代码:

import SwiftUI

struct GridStack<Content: View>: View {
    let rows: Int
    let columns: Int
    let content: (Character) -> Content

    var body: some View {
        VStack {
            ForEach(1 ..< rows,id: \.self) { row in
                HStack {
                    ForEach(1 ..< self.columns,id: \.self) { column in
                        self.content("C").padding().border(Color.black)
                    }
                }
            }
        }
    }

    init(rows: Int,columns: Int,@ViewBuilder content: @escaping (Character) -> Content) {
        self.rows = rows
        self.columns = columns
        self.content = content
    }
}

这是SceneDelegate.swift的代码段

class SceneDelegate: UIResponder,UIWindowSceneDelegate {

    var window: UIWindow?
    let theSheet = ["A","M","A","N"]
    func scene(_ scene: UIScene,willConnectTo session: UISceneSession,options connectionOptions: UIScene.ConnectionOptions) {
        let contentView = GridStack(rows: Int(11),columns: Int(11),content: { _ in Text("\theSheet[3]")})
            
        if let windowScene = scene as? UIWindowScene {
            let window = UIWindow(windowScene: windowScene)
            window.rootViewController = UIHostingController(rootView: contentView)
            self.window = window
            window.makeKeyAndVisible()
        }
    }

请特别注意以下一行:

let contentView = GridStack(rows: Int(11),content: { _ in Text(theSheet[3])})

您可以看到我已经为数组theSheet的索引硬编码了值3。我想做的是使用公式行+列中的当前“行”和“列”值动态计算索引。

我请这里的专家提供帮助!我在线上提供您需要的更多详细信息。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)