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
相关产品推荐
相关产品推荐

