繁体   English   中英

SwiftUI:如何动态设置自定义视图大小

[英]SwiftUI: How to set custom view size dynamically

我使用 SwiftUI。 我需要一个自定义视图。 自定义视图宽度应等于超级视图宽度。 自定义视图包含两个图像视图,分别左右对齐。 每个图像视图具有相同的宽度和高度(纵横比 = 1)。 两个图像视图有 10 点空间。 我将在图像视图中显示不同尺寸的图像(缩放比例填充)。

在此处输入图片说明

如果我使用GeometryReader ,我可以动态设置图像视图框架,但是如何动态设置GeometryReader框架? 如果我HStack没有GeometryReader的情况下使用HStack ,则图像视图框架是可变的。 如何在 SwiftUI 中做到这一点?

也许是以下的一些变体:

struct CustomView: View {
    var body: some View {
        HStack(spacing: 10) {
            Image(systemName: "heart.fill")
                .resizable()
                .aspectRatio(1, contentMode: .fit)

            Image(systemName: "heart.fill")
                .resizable()
                .aspectRatio(1, contentMode: .fit)
        }.frame(maxWidth: .infinity)
    }
}

两个图像保持 1:1 的纵横比,它们之间有 10 个点的间距,但允许使用.frame修饰符水平增长。

根据需要将Image(systemName: "heart.fill")替换为所需的图像源。

如果您的源图像资产没有 1:1 的纵横比,请将contentMode设置为.fill ,并使用.frame(height: ..)限制HStackCustomView内的CustomView .frame(height: ..)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM