首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ScrollViewReader的proxy.scrollTo未滚动

ScrollViewReader的proxy.scrollTo未滚动
EN

Stack Overflow用户
提问于 2021-06-14 18:49:23
回答 1查看 304关注 0票数 0

我有这段SwiftUI代码,它构建了一个大的UI视图,它太大了,无法显示在屏幕上,所以我把它放在了2D滚动视图中。虽然这个示例是一个网格,但让我们假设内容填充了同样多的内容,但项目更随机地放置。当视图出现时,我希望它以这些项中的一个居中开始,在ID为"(25,25)“的项下面的情况下。这段代码编译得很好,在文档中看起来也很好,并且可以运行,但不会滚动到ID为"(25,25)“的ZStack。为什么不滚动到此ZStack?代码使用iOS 14和iOS 15b1进行了测试。

代码语言:javascript
运行
复制
var body: some View {
    ScrollViewReader { scrollView in
        ScrollView([.horizontal, .vertical]) {
            VStack(alignment: .leading, spacing: 0) {
                ForEach(0..<50) { y in
                    HStack(alignment: .center, spacing: 0) {
                        ForEach(0..<50) { x in
                            ZStack {
                                Circle()
                                    .frame(width: 35, height: 35)
                                    .foregroundColor(.blue.opacity(0.5))
                                Text("(\(x),\(y)")
                                    .font(.system(size: 8))
                            }
                            .offset(x: CGFloat(x * 25), y: CGFloat(y * 25))
                            .id("(\(x),\(y))")
                        }
                    }
                }
            }
            
        }
        .onAppear {
            DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {
                scrollView.scrollTo("(25,25)")
            }
        }
    }
}
EN

Stack Overflow用户

发布于 2021-06-15 22:27:57

我想你把偏移误认为是填充了,只需要填充就行了。

不过,看起来不能滚动到带有偏移的视图是个bug。

从理论上讲,您的代码有一个错误:您在偏移量之前向视图添加了一个ID,因此当您滚动到该ID时,它会滚动到偏移量之前视图所在的位置。

切换offsetid,它应该可以工作(但它没有,这让我认为这里有一个SwiftUI错误)。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67968915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档