代码之家  ›  专栏  ›  技术社区  ›  Şafak Gezer

SwiftUI-GeometryReader覆盖自定义转换

  •  0
  • Şafak Gezer  · 技术社区  · 4 年前

    我想对一组由 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 ,这也不起作用)

    0 回复  |  直到 4 年前