我使用 SwiftUI。我需要一个自定义视图。自定义视图宽度应等于超级视图宽度。自定义视图包含两个图像视图,分别左对齐和右对齐。每个图像视图具有相同的宽度和高度(长宽比 = 1)。两个图像视图有 10 个点的空间。我将在图像视图中显示不同尺寸的图像(缩放纵横比填充)。
如果我使用GeometryReader
,我可以动态设置图像视图框架,但是如何GeometryReader
动态设置框架?如果我使用HStack
without GeometryReader
,图像视图帧是可变的。如何在 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)
}
}
Run Code Online (Sandbox Code Playgroud)
两个图像都保持 1:1 的纵横比,它们之间有 10 个点的间距,但允许使用.frame
修改器水平增长。
根据需要替换Image(systemName: "heart.fill")
为所需的图像源。
如果您的源图像资源没有 1:1 的宽高比,请将 设为contentMode
,并使用 限制或其父级内部.fill
的框架高度。HStack
CustomView
.frame(height: ..)
归档时间: |
|
查看次数: |
12645 次 |
最近记录: |