【问题标题】:Swiftui ScrollViewreader multiple ScrollTo in different ForeachSwiftui ScrollViewreader 多个 ScrollTo 在不同的 Foreach
【发布时间】:2021-03-12 17:24:49
【问题描述】:

我不能在我的代码中创建很多 .scrollTo():(我是法语,抱歉我的英语不好)

else if index == 1 {
    withAnimation {
            value.scrollTo(topID)
     }
}

我的问题在于 value.scrollTo(topID) 我试图在 3 个不同的 foreach 中实现其中的 6 个,并且编译器无法编译,但是如果我删除它编译的 Foreach 之一的 value.scrollTo(topID)

else if wichView.SelectedView == 5 {
            HStack {
              ForEach(1..<6) { index in
                Spacer()
                Button(action: {
                  if index == 3 {
                    withAnimation() {
                      wichView.SelectedView = 1
                      wichView.carouselLocation = 0
                    }
                    value.scrollTo(topID)
                  }
                  else if index == 1 {
                    withAnimation {
                      value.scrollTo(topID)
                    }
                  }
                },
                label: {
                  Image("IPPV5_TABBITEM\(index)")
                    .resizable()
                    .aspectRatio(contentMode: .fit)
                    .frame(width: 40,
                        height: 40)
                })
              }
              Spacer()
            }
            .padding(.bottom, -10)
            .frame(width: size.width,
                height: 35)
          }
          else if wichView.SelectedView == 6 {
            HStack(spacing: size.width/3 - 10) {
              Button(action: {
                withAnimation {
                  value.scrollTo(topID)
                }
              },
              label: {
                Image("IPPV6-TABITEM1")
                  .resizable()
                  .aspectRatio(contentMode: .fit)
                  .frame(width: 40,
                      height: 40)
                 
              })
               
              Button(action: {
                wichView.SelectedView = 1
                wichView.carouselLocation = 0
                value.scrollTo(topID)
              },
              label: {
                Image("IPPV6-TABITEM2")
                  .resizable()
                  .aspectRatio(contentMode: .fit)
                  .frame(width: 40,
                      height: 40)
              })
              Spacer()
            }
            .padding(.bottom, -10)
            .frame(width: size.width - 40,
                height: 35)
          }
          else if wichView.SelectedView == 8 {
            IPPV8TabItem
          }
          else if wichView.SelectedView == 9 {
            HStack {
              ForEach(1..<6) { index in
                Spacer()
                Button(action: {
                  if index == 3 {
                    withAnimation {
                      wichView.SelectedView = 1
                    }
                    wichView.carouselLocation = 0
                   // withAnimation {
                   //  value.scrollTo(topID)
                   // }
                  }
                  else if index == 1 {
                   // withAnimation {
                   //  value.scrollTo(topID)
                   //}
                  }
                },
                label: {
                  Image("IPPV9-\(index)")
                    .resizable()
                    .aspectRatio(contentMode: .fit)
                })
              }
              Spacer()
            }
            .frame(width: size.width,
                height: 40)
          }

这是我的代码的一部分(全部在 ScrollView 中,在 Scrollviewreader 中,在 Vstack 中,在 Zstack 中)

这段代码可以正常工作并且可以编译,因为如果我将其中一个 Foreach 的 .scrollTo() 注释掉,它将无法编译。

任何帮助,我不知道问题是 Foreachs 还是 .scrollTo()?

【问题讨论】:

    标签: swiftui swiftui-scrollview swiftui-foreach


    【解决方案1】:

    最后我做了类似else if wichView.SelectedView == 9 &amp;&amp; wichView.SelectedView == 5 的操作来合并两个条件并使用相同的 .scrollLTo 它可以工作,所以我不明白为什么它在不同的 Foreach 之前不能编译

    【讨论】:

      猜你喜欢
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 2020-05-19
      相关资源
      最近更新 更多