如何显示多维数组?

时间:2019-06-11 19:36:20

标签: swiftui

我有一个带有自定义类型的二维数组。

我想做类似的事情:

HStack {
    ForEach(2dArray) { x in
        VStack {
            ForEach(self.2dArray[x.index]) { y in

我遇到的主要问题是我不知道如何获取x.index。

4 个答案:

答案 0 :(得分:1)

所以我要说的是,您应该这样做以迭代2D数组:

var data = [[1,2,3],[4,5,6],[7,8,9]]

ForEach(data.identified(by: \.self)) { array in
    ForEach(array.identified(by: \.self)) { element in
        Text("\(element)")
    }
}

但是XCode 11 beta在SwiftUI和类型推断方面仍然存在很多问题,因此即使执行正常,您也会遇到编译器错误。因此,现在,您必须将所有内容分离为XCode编译器可以处理的功能,但是由于SwiftUI使用的复杂类型,它变得非常丑陋。这是一个示例:

var data = [[1,2,3],[4,5,6],[7,8,9]]

var body: some View {
    doubleForEach(data: data)
}
func doubleForEach(data: [[Int]]) -> ForEach<IdentifierValuePairs<[[Int]], [Int]>,ForEach<IdentifierValuePairs<[Int], Int>, Text>> {
    return ForEach(data.identified(by: \.self)) { row in
        self.foreach(dataArr: row)
    }
}
func foreach(dataArr: [Int]) -> ForEach<IdentifierValuePairs<[Int], Int>, Text> {
    return ForEach(dataArr.identified(by: \.self)) { data in
        Text("\(data)")
    }
}

看起来像这样:

答案 1 :(得分:1)

实际上,早期响应中的示例RPatel99 postet对我来说很好:

# project/setup.py
from distutils.core import setup

setup(
  name='s3_backend',
  version='0.1.7',
  license='MIT',
  description='scripting api for file upload to s3',
  author='SkippyElvis',
  author_email='Skippy@Elvis.com',
  url='https://github.com/jackhwolf/s3_backend',
  keywords=['aws', 's3', 'file upload'],
  packages=['s3_backend', 's3_backend.util'],
  classifiers=[
    'Programming Language :: Python :: 3',
  ],
)

但这是您的问题吗?

答案 2 :(得分:1)

btn.background_disabled_normal = ''

答案 3 :(得分:0)

struct ContentView : View {
  var body: some View {
    VStack {
      ForEach(data.identified(by: \.self)) { array in
        HStack{
          ForEach(array.identified(by: \.self)) { element in
            Text("\(element)")
          }
        }
      }
    }
  }
}

enter image description here

相关问题