我希望在SwiftUI的列表上方加上一个半透明的图像叠层。
我尝试过以下代码:
struct ContentView: View {
var body: some View {
List {
Text("first")
Text("second")
Text("third")
}
.overlay(
Image(systemName: "hifispeaker")
.resizable()
.frame(width: 200, height: 200)
.opacity(0.15)
)
}
}
外观看起来如预期,但是如果将手指放在图像边界内,则列表的滚动不起作用(如果尝试在图像外滚动,则正常工作)。
我尝试在opacity后面添加 .allowsHitTesting(false)
,但它没有改变任何东西。
使用ZStack
而不是overlay
也无济于事。我找到的唯一解决方法是使用ZStack
,将图像放在列表后面并使列表半透明,但这不是我要找的解决方案(它稍微改变了列表的颜色,并导致某些动画出现问题)。
有办法让它工作吗?比如使图像将事件传递给后台的列表之类的。