首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在SwiftUI中设置嵌入在ForEach中的HStack的相对宽度?

在SwiftUI中,可以使用GeometryReader来设置嵌入在ForEach中的HStack的相对宽度。GeometryReader是一个视图容器,可以提供有关其父视图的几何信息。

要设置HStack的相对宽度,可以使用GeometryReader包装HStack,并在其内部使用GeometryProxy来获取父视图的几何信息。然后,可以使用GeometryProxy的size属性来计算HStack的相对宽度。

下面是一个示例代码:

代码语言:txt
复制
struct ContentView: View {
    let data = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"]
    
    var body: some View {
        GeometryReader { geometry in
            VStack {
                ForEach(data, id: \.self) { item in
                    GeometryReader { itemGeometry in
                        HStack {
                            Text(item)
                                .frame(width: itemGeometry.size.width * 0.5, height: 50)
                                .background(Color.blue)
                            
                            Spacer()
                        }
                        .frame(width: geometry.size.width, height: 50)
                    }
                }
            }
        }
    }
}

在上面的示例中,我们首先使用GeometryReader包装了整个视图,并在其中创建了一个垂直的VStack。然后,我们使用ForEach遍历数据数组,并在其中使用另一个GeometryReader来包装HStack。在HStack中,我们使用itemGeometry.size.width * 0.5来设置Text的宽度为父视图宽度的一半。最后,我们使用geometry.size.width来设置HStack的宽度为父视图的宽度。

这样,我们就可以在SwiftUI中设置嵌入在ForEach中的HStack的相对宽度了。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券