【发布时间】:2021-06-03 16:32:24
【问题描述】:
我想在SwiftUI List 中实现以下基于约束的图像布局:
- 将每个
Image的左/右边缘固定到列表边距(适应屏幕大小) - 基于纵横比的动态高度(我也可以使用固定高度)
- 保持图片纵横比,内容应填满空间
我尝试过但不起作用的方法(基于this article):
struct MyView: View {
@ObservedObject var viewModel: MyViewModel
let aspectRatio = CGSize(width: 345, height: 120)
var body: some View {
List {
ForEach(viewModel.items) { item in
GeometryReader { geo in
Image("test_image")
.resizable()
.aspectRatio(aspectRatio, contentMode: .fill)
.frame(width: geo.size.width)
.clipped()
}
}
}
}
}
我从geo 得到的尺寸在 iPhone 11 Pro 上是 (343, 32)。宽度是有道理的,但由于某种原因,它不会让单元格扩展超过 32 的高度。欢迎任何提示,因为我真的开始怀念自动布局约束了。
【问题讨论】:
标签: ios swift image layout swiftui