Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swiftui 如何在不使用GeometryReader的情况下读取视图数组中的视图宽度?_Swiftui - Fatal编程技术网

Swiftui 如何在不使用GeometryReader的情况下读取视图数组中的视图宽度?

Swiftui 如何在不使用GeometryReader的情况下读取视图数组中的视图宽度?,swiftui,Swiftui,这是我的某个Rec数组,我需要知道我是否可以在不使用GeometryReader的情况下读取该Rec的大小,例如Rec的宽度 var body: some View { let arrayOfRec = [Rectangle().frame(width: 100, height: 100), Rectangle().frame(width: 200, height: 200)] VStack { ForEach(0..<arrayOfRe

这是我的某个Rec数组,我需要知道我是否可以在不使用GeometryReader的情况下读取该Rec的大小,例如Rec的宽度

var body: some View {
    
let arrayOfRec = [Rectangle().frame(width: 100, height: 100), Rectangle().frame(width: 200, height: 200)]
    
    VStack
    {
        ForEach(0..<arrayOfRec.count) { index in
            arrayOfRec[index]
        }
    }
 
}
var主体:一些视图{
设arrayOfRec=[Rectangle().frame(宽度:100,高度:100),Rectangle().frame(宽度:200,高度:200)]
VStack
{

ForEach(0..不幸的是,在纯SwiftUI中,如果没有几何体读取器,似乎无法获得矩形的宽度和高度。我尝试了附加到该形状的方法,但没有任何结果

未知用例是什么,但可以创建一个自定义对象来保存矩形的宽度和高度

struct Rectangle_TEST {
    var rectangle: Rectangle
    var width: CGFloat
    var height: CGFloat
    init(width: CGFloat, height: CGFloat) {
        self.width = width
        self.height = height
        self.rectangle = Rectangle()
    }
    func getView(color: Color) -> some View {
        return self.rectangle
            .fill(color)
            .frame(width: self.width, height: self.height)
    }
}

struct ContentView: View {
    var body: some View {
        let arrayOfRec: [Rectangle_TEST] = [Rectangle_TEST(width: 100, height: 100), Rectangle_TEST(width: 200, height: 200)]
        VStack {
            ForEach(0..<arrayOfRec.count) { index in
                Text("Width: \(arrayOfRec[index].width), Height: \(arrayOfRec[index].height)")
                arrayOfRec[index].getView(color: .red)
            }
        }
    }
}
struct Rectangle\u测试{
变量矩形:矩形
变量宽度:CGFloat
变量高度:CGFloat
初始(宽度:CGFloat,高度:CGFloat){
self.width=宽度
自我高度=高度
self.rectangle=rectangle()
}
func getView(color:color)->一些视图{
返回自选矩形
.填充(颜色)
.框架(宽度:自宽,高度:自高)
}
}
结构ContentView:View{
var body:一些观点{
让arrayOfRec:[矩形测试]=[矩形测试(宽度:100,高度:100),矩形测试(宽度:200,高度:200)]
VStack{
ForEach(0。。