ios - SwiftUI:如何动态设置自定义 View 大小

标签 ios swift swiftui

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

enter image description here

如果我使用GeometryReader,我可以动态设置 ImageView 框架,但是如何动态设置GeometryReader框架呢?如果我在没有 GeometryReader 的情况下使用 HStack,则 ImageView 帧是可变的。如何在 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") 替换为所需的图像源。

如果您的源图像 Assets 没有 1:1 的宽高比,请将 contentMode 设置为 .fill,并限制 的帧高度HStack 或其父级内部的 CustomView 使用 .frame(height: ..)

关于ios - SwiftUI:如何动态设置自定义 View 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59634077/

相关文章:

swift - 我们如何在 SwiftUI 中读取和写入同一个 ObservableObject?

ios - 替换两个字符串之间的字符串

ios - 应用内购买收据验证问题

ios - UIPasteboard 的实际位置在哪里?

ios - 在 ViewModel 中格式化 UITableViewCell 日期

ios - 为 UITextField 每 3 个字符添加一个字符

swift - 在 switch 语句中显式转换类型是否安全,其中 case 是我转换为的类型?

ios - 如何使用 SwiftUI 连续呈现两个警报 View

ios - 如何在 Swift 中从 Google Places 接收国家/地区代码

swift - 如何在struct中实现func计算?