我使用SwiftUI。我需要一个自定义视图。自定义视图的宽度应等于超级视图的宽度。自定义视图包含两个图像视图,分别向左和向右对齐。每个图像视图具有相同的宽度和高度(纵横比= 1)。两个图像视图有10点空间。我将在图像视图(比例纵横比填充)中显示不同尺寸的图像。
如果使用GeometryReader
,则可以动态设置图像视图框架,但是如何动态设置GeometryReader
框架?如果我使用HStack
而不使用GeometryReader
,则图像视图框架是可变的。如何在SwiftUI中做到这一点?
答案 0 :(得分:1)
可能是以下内容的某种变体:
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
,并限制HStack
或{{1 }}在其父级内部使用CustomView
。