【发布时间】:2023-04-05 01:40:01
【问题描述】:
我有一个按钮,我想在它上面放一个半透明的渐变叠加层。
Button(action: {
print("Pressed")
}) {
Text("Press me")
}
.overlay(
LinearGradient(
gradient: Gradient(colors: [.clear, Color.black.opacity(0.3)]),
startPoint: .top,
endPoint: .bottom
).disabled(true)
)
即使渐变有disabled(true),它仍然会吃掉触摸并且不会将它们转发到实际按钮。 .allowsHitTesting(false) 提供相同的结果。
知道什么是错的吗?
注意:我知道我可以将叠加层放到Text("Press me"),但我不想要它。 (这只是展示问题的示例代码)
编辑:此问题已在 Xcode 11.2 中解决 ✅
【问题讨论】:
-
您在 Button 前面创建了一个渐变视图,没有用户交互可以通过您的 Button。代替 .overlay ,使用 .background 或在 .overlay 之后添加 .onTapGesture。
标签: swiftui