You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 17 SwiftUI问题:ScrollView中用containerRelativeFrame的Color视图滚动重叠

iOS 17 SwiftUI 滚动分页布局重叠问题

在iOS 17的SwiftUI中,遇到以下布局问题:ScrollView内VStack中的Color视图向下滚动时会出现重叠。每个Color视图本应占据容器完整空间,但滚动时下一个视图会侵占前一个的空间,且滚动越久,后续视图侵占的空间越多。

可复现代码

struct TestView: View {
    var body: some View {
        ScrollView(.vertical, showsIndicators: false) {
            VStack(spacing: 0) {
                ForEach(0..<10, id:\.self) { idx in
                    Color.random()
                        .containerRelativeFrame([.horizontal, .vertical])
                }
            }
            .scrollTargetLayout()
        }
        .scrollTargetBehavior(.paging)
    }
}

#Preview {
    TestView()
}

实现说明

为每个Color视图使用.containerRelativeFrame([.horizontal, .vertical])使其填充可用空间,为VStack添加.scrollTargetLayout(),为ScrollView添加.scrollTargetBehavior(.paging)实现分页行为。预期每个Color视图占据独立页面空间互不影响,但滚动时布局出现错乱。

环境信息

  • 模拟器版本:iOS 17.0
  • XCode版本:15.0.1 (15A507)
  • Swift版本:swift-driver version: 1.87.1 Apple Swift version 5.9 (swiftlang-5.9.0.128.108 clang-1500.0.40.1) Target: x86_64-apple-macosx13.0

请问是否有人遇到过类似问题,或能指出问题原因?

内容的提问来源于stack exchange,提问作者Muhand Jumah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 05:44:55