如何去除内部的蓝色阴影,保持内部透明?
Circle()
.frame(width: 30, height: 30, alignment: .center)
.padding()
.overlay(
RoundedRectangle(cornerRadius: 20)
.strokeBorder(Color.primary, lineWidth: 2)
.shadow(color: Color.blue.opacity(1), radius: 3, x: 3, y: 3)
)
Run Code Online (Sandbox Code Playgroud)
这个解决方案看起来很重载,但这里我们有 3 层:阴影、蒙版和描边。
Circle()
.frame(width: 30, height: 30, alignment: .center)
.padding()
.overlay(
ZStack {
RoundedRectangle(cornerRadius: 20) // shadow layer
.shadow(color: Color.blue.opacity(1), radius: 3, x: 3, y: 3)
RoundedRectangle(cornerRadius: 20) // mask layer
.blendMode(.destinationOut)
RoundedRectangle(cornerRadius: 20) // stroke layer
.strokeBorder(Color.primary, lineWidth: 2)
}
.compositingGroup()
)
Run Code Online (Sandbox Code Playgroud)
查看这篇文章以了解更多详细信息如何在 SwiftUI 中应用反向蒙版
| 归档时间: |
|
| 查看次数: |
1127 次 |
| 最近记录: |