【发布时间】:2019-10-29 10:00:01
【问题描述】:
在 SwiftUI 运行视图渲染阶段后,有没有办法测量计算出的视图大小?例如,给定以下视图:
struct Foo : View {
var body: some View {
Text("Hello World!")
.font(.title)
.foregroundColor(.white)
.padding()
.background(Color.red)
}
}
选择视图后,计算出的尺寸会显示在左下角的预览画布中。有谁知道在代码中访问该大小的方法?
【问题讨论】:
-
对我来说,SwiftUI 的意图是不关心任何东西的大小。也就是说,除非你这样做——在这种情况下,你声明它。是的,范式转变。但是在这种情况下,你为什么要关心帧大小是多少? (我假设你的意思。我猜苹果实验室的专家也会问你同样的问题。你有
padding()、Spacer()、Divider()`,当然还有frame(),当你需要声明尺寸或添加间距。所以说declaritvely(将其余部分留给适用于所有尺寸的渲染引擎)你为什么要关心? -
@dfd 在显示范围内随机定位是我的^^
-
这篇由 SwiftUI Lab 的 Javier 撰写的三篇博文帮助我解决了这个问题。我强烈建议任何有兴趣的人详细阅读它。 - swiftui-lab.com/communicating-with-the-view-tree-part-1 - swiftui-lab.com/communicating-with-the-view-tree-part-2 - swiftui-lab.com/communicating-with-the-view-tree-part-3
-
@dfd 例如,当您桥接到 UIKit 时:UITableView 需要大小来配置表格视图单元格的高度。
标签: swiftui