【发布时间】:2019-06-14 18:07:15
【问题描述】:
需要使用 SwiftUI 创建图像网格,根据屏幕宽度动态更改行。
当我使用List时,我只能得到一列..
我尝试使用 Hstacks 制作 2 列,但它不适用于屏幕宽度动态。
例如:iPhone 肖像应该有 1 列 例如:iPhone 横向应该有 2 列
import SwiftUI
struct ProductGrid : View {
var body: some View {
List(0 ..< 5) { item in
VStack() {
Image("product")
HStack {
ProfileImageSmall()
VStack {
Text("Product")
Text("Username")
}
}
}
}
}
}
如何制作列数适应屏幕宽度的网格?
【问题讨论】:
-
现在,你不能。也就是说,除非您使用
UIKit- 老实说,我不知道那里是否有可能。 -
你能张贴你想要达到的目标的草图吗?
-
@dfd 如果他追求的是照片应用程序所做的事情,显然这是可能的。
-
照片是否使用 SwiftUI? “在
UIViewRepresentable中包装 UIKit 视图”的解决方案可能是目前唯一的答案,但它并不是一个好的答案。 -
这就是为什么我发表了一个相当模糊的评论。使用
HStack和VStack,即使是List也不会这样做。同样,正如@matt 指出的那样,iOS 13 Photos 的限制是什么?它使用 SwiftUI 吗? UIKit?我的最佳猜测是 如果 新的照片应用程序(真的还没有在 iOS 13 中使用它)处理所需的内容 并且 不是 iOS 12 的一部分,那么它很可能使用 SwiftUI。但是......这是 SwiftUI beta 1 中可用的东西吗?我很确定 Apple 正在使用许多“尚未准备好迎接黄金时段,测试版较少”的功能。