【发布时间】:2021-12-13 10:40:58
【问题描述】:
我想访问我的自定义视图的父视图以了解我的视图父视图是 HStack 还是 VStack,就像 Divider() 可以做到的那样。目前我是硬编码值,但我的目标是我可以访问自定义视图中的父信息以选择正确的返回视图。
struct ContentView: View {
var body: some View {
HStack { Divider() }
VStack { Divider() }
HStack { CustomView(parentIsHStack: true) }
VStack { CustomView(parentIsHStack: false) }
}
}
struct CustomView: View {
let parentIsHStack: Bool
var body: some View {
if parentIsHStack {
Text("Parent is HStack")
}
else {
Text("Parent is VStack")
}
}
}
【问题讨论】:
-
看看我在stackoverflow.com/questions/70293599/… 的评论——这里是同样的情况。
-
@Asperi:谢谢,基本上你说的,有一些环境是苹果秘密使用的,我们无法访问它们,对吧?
-
这是一种可能的变体,当然它们可以像我们在自己的实现中那样直接与子视图通信。但绝对是“父母”起源(对我们隐藏),反之亦然。