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

