Ios SwiftUI:动态设置图像大小

Ios SwiftUI:动态设置图像大小,ios,swift,swiftui,Ios,Swift,Swiftui,我想在视图中显示图像,其中图像源的大小会有所不同。 是否有一种方法可以根据包含视图的宽度动态调整图像的大小,或者使屏幕大小均匀? 我有一个水平滚动视图,每个元素都是一个图像和一个文本的堆栈。我想根据屏幕宽度调整每个图像的大小,因为我想独立于设备。 在SwiftUI中,您将如何做到这一点? 谢谢 您可以获得屏幕的大小(或者窗口,如果您使用的是带有分屏的iPad) 在下面的示例中,俯视图使用GeometryReader获取尺寸并将其向下传递到层次结构。子视图使用该数据创建一个蓝色矩形,其大小为屏幕的

我想在视图中显示图像,其中图像源的大小会有所不同。 是否有一种方法可以根据包含视图的宽度动态调整图像的大小,或者使屏幕大小均匀? 我有一个水平滚动视图,每个元素都是一个图像和一个文本的堆栈。我想根据屏幕宽度调整每个图像的大小,因为我想独立于设备。 在SwiftUI中,您将如何做到这一点? 谢谢


您可以获得屏幕的大小(或者窗口,如果您使用的是带有分屏的iPad)

在下面的示例中,俯视图使用GeometryReader获取尺寸并将其向下传递到层次结构。子视图使用该数据创建一个蓝色矩形,其大小为屏幕的一半。如果设备旋转,它也会适应

GeometryReader有许多功能,尽管它们几乎没有文档记录,但我已经写了一篇文章,充分解释了如何使用它们:

struct ContentView:View{
var body:一些观点{
GeometryReader{中的几何体
MySubview(大小:geometry.size)
}
}
}
struct MySubview:View{
让大小:CGSize
var body:一些观点{
打印(“大小=\(大小)”)
返回颜色.blue.frame(宽度:size.width/2,高度:size.height/2).fixedSize()
}
}
执行此操作时,出现错误“无法将“CGSize.type”类型的值转换为预期的参数类型“CGSize”。你知道如何解决这个问题吗?
struct ImageRow: View {
    var items: [ImageWithDescription]

    var body: some View {

        ScrollView(showsHorizontalIndicator: false) {
                HStack(alignment: .bottom){

                    ForEach(self.items.identified(by: \.name)) { item in
                       Spacer()
                        VStack {
                        Image(uiImage: item.image ?? UIImage())
                            .resizable()
                            .frame(minWidth: (item.image.size.width) / 3, height: (item.image.size.height) / 3)
                            .cornerRadius(20, antialiased: true)
                            .clipShape(Rectangle())
                            .shadow(radius: 10)

                        Text(item.name)
                        .color(.primary)
                        .font(.subheadline)

                        }
                    }
                    .padding()
                }
                }
                .frame(height: 300)

    }
}