我想对一组由
GeometryReader
,如下图:
()定制过渡工程:
var body: some View {
ZStack {
VStack {
VStack {
ForEach(modelView.views) { view in
GeometryReader(content: { geometry in
RoundedRectangle(cornerRadius: 25.0)
})
.transition(.myCustomTransition)
// Transition declared on the enclosing GeometryReader
// Custom transition works
}
}
}
}
()自定义转换被忽略,默认为
.opacity
var body: some View {
ZStack {
VStack {
VStack {
ForEach(modelView.views) { view in
GeometryReader(content: { geometry in
RoundedRectangle(cornerRadius: 25.0)
.transition(.myCustomTransition)
// Transition declared on the RoundedRectangle, as intended
// Custom transition gets replaced by an .opacity transition
})
}
}
}
}
RoundedRectangles
在上面的第一个代码块中工作正常,它在封闭
几何头
,但我不能这样构造它,因为我需要
“当前定位数据-我必须从
geometry
var—作为自定义转换的输入提供。(为了简洁起见,上述代码中省略了这一部分,可以这样想
.myCustomTransition(param: aRequiredValueFromTheGeometryProxy)
)所以我需要在said中声明转换
几何头
就像第二个例子。
我想不出第二个例子中的转换为什么不能像预期的那样工作。我绝对不是速腾方面的专家,所以我很肯定我在这里出了点问题。
不出意外的是
.transition(.identity)
在围墙上
P.P.S.我没有包括我的自定义转换实现,因为它似乎对问题无关紧要。(即当我用
.slide
,这也不起作用)