ios - SwiftUI:如何动态设置自定义视图大小
问题描述
我使用 SwiftUI。我需要一个自定义视图。自定义视图宽度应等于父视图宽度。自定义视图包含两个图像视图,分别左右对齐。每个图像视图具有相同的宽度和高度(纵横比 = 1)。两个图像视图有 10 个点的空间。我将在图像视图中显示不同尺寸的图像(比例填充)。
如果我使用GeometryReader
,我可以动态设置图像视图框架,但是如何GeometryReader
动态设置框架?如果我HStack
不使用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)
}
}
两个图像都保持 1:1 的纵横比,它们之间有 10 个点的间距,但允许使用.frame
修改器水平增长。
根据需要替换Image(systemName: "heart.fill")
为所需的图像源。
如果您的源图像资源没有 1:1 的纵横比,请将 设置contentMode
为,并使用 限制其父级或其内部.fill
的帧高度。HStack
CustomView
.frame(height: ..)
推荐阅读
- bash - Shell 脚本:语法错误:“(”意外
- javascript - 如何在文本区域字段中显示图像代替用户输入 URL?
- tensorflow - 使用 tensorflow 2.0 的 GradientTape() 计算梯度的问题
- laravel - 在 Laravel 中的 FormRequest 上添加其他功能
- javascript - 无法使用 PIXI JS 和 Leaflet Mapping API 在地图上拖放标记
- magento2 - 如何在不使用 PDP 上的 Registry 或 ObjectManager 的情况下获取 Magento2 中的当前类别?
- ios - Callkit:最近的通话记录未显示视频通话的拨出电话
- java - 在 URLConnection 类中处理 UTF-8 字符
- python - MongoDB从Python编码值上传错误的二进制字符串
- maven - 无法读取 org.apache.maven .plugins:maven-surefire-plugin:jar:2.22.0 的工件描述符: