有什么方法可以避免 SwiftUI GeometryReader 阻止嵌套视图在 List 内增长? [英] Any way to avoid SwiftUI GeometryReader preventing nested view to grow inside List?
本文介绍了有什么方法可以避免 SwiftUI GeometryReader 阻止嵌套视图在 List 内增长?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
出于某种原因,将 GeometryReader
作为中介,如果它是 List
单元格",则会杀死其嵌套视图的几何图形.
For some reason, putting a GeometryReader
as an intermediary, kills geometry of its nested views if it's a List
"cell".
示例代码:
struct SampleView: View {
var multilineText: some View {
Text(
"""
Some
Amazing
Multiline
Copy
"""
)
}
var body: some View {
List(1...5, id: \.self) { _ in
GeometryReader { _ in
self.multilineText
}
}
}
}
没有GeometryReader
(预期)/实际有GeometryReader
:
Without GeometryReader
(Expected) / Actual with GeometryReader
:
这个例子显然过于简化了,但有正当的理由来测量我正在构建的嵌套视图的几何形状.
This example, obviously, is over-simplified, but there is a legitimate reason to measure geometry for a nested view I'm building.
这是在 Xcode 11 beta 6 上.我应该直接将其报告为错误,还是可以预期且可行的方法?
This is on Xcode 11 beta 6. Should I go straight into reporting this as a bug, or it's something expected and workable around?
推荐答案
为列表添加最小行高.
List(1...5, id: \.self) { _ in
GeometryReader { _ in
self.multilineText
}
}.environment(\.defaultMinListRowHeight, 100)
这篇关于有什么方法可以避免 SwiftUI GeometryReader 阻止嵌套视图在 List 内增长?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文