You need to enable JavaScript to run this app. SwiftUI 为VStack/HStack加.shadow属性后为何仅首个List可滚动收手势?
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI 为VStack/HStack加.shadow属性后为何仅首个List可滚动收手势?

多List容器添加阴影后的交互失效问题

复现环境

在Xcode构建的真机环境下,针对iOS 14及以上版本可稳定复现该问题。

触发条件

将2个及以上带有效内容的List组件放入VStack或HStack布局容器中,并为该父容器添加.shadow修饰符。

异常现象

  • 容器内仅排列在第一位的List可正常响应手势、完成列表滚动
  • 其余所有List完全无法接收触摸事件,滚动交互完全失效
  • 该行为无官方文档对应说明,不属于SwiftUI公开定义的预期表现,初步判断为系统框架Bug

复现代码

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            ListView1()
            ListView2()
        }
        .shadow(radius: 5)
    }
}

struct ListView1:View {
    var values=["1","2","3"]
    var body: some View {
        List {
            ForEach(values, id: \.self) { (value) in
                Text("Value \(value)")
            }
        }
    }
}

struct ListView2:View {
    var values=["5","6","7"]
    var body: some View {
        List {
            ForEach(values, id: \.self) { (value) in
                Text("Value \(value)")
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 18:54:03