圆形 LinearGradient 上的 ContextMenu 在 SwiftUI 中产生尖锐的边缘
ContextMenu on a rounded LinearGradient produces sharp edges in SwiftUI
我有以下看法:
struct ContentView: View {
var body: some View {
LinearGradient(gradient: Gradient(colors: [.blue, .red]), startPoint: .topTrailing, endPoint: .bottomLeading)
.cornerRadius(16)
.frame(width: 140, height: 140)
.contextMenu {
Button("", action: {})
}
}
}
但是,当调用 ContextMenu 时,边缘不是圆角的:
我尝试了几种方法,例如:
- 应用
clipShape
修饰符将其剪辑到 RoundedRectangle
- 将渐变包装为 RoundedRectangle 视图的背景
- 使用 Color 而不是 LinearGradient(按预期工作,但不是我需要的)
但是 none 有效。任何建议将不胜感激,谢谢!
在.frame(...)
后添加如下代码:
.contentShape(RoundedRectangle(cornerRadius: 16, style: .continuous))
我有以下看法:
struct ContentView: View {
var body: some View {
LinearGradient(gradient: Gradient(colors: [.blue, .red]), startPoint: .topTrailing, endPoint: .bottomLeading)
.cornerRadius(16)
.frame(width: 140, height: 140)
.contextMenu {
Button("", action: {})
}
}
}
但是,当调用 ContextMenu 时,边缘不是圆角的:
我尝试了几种方法,例如:
- 应用
clipShape
修饰符将其剪辑到RoundedRectangle
- 将渐变包装为 RoundedRectangle 视图的背景
- 使用 Color 而不是 LinearGradient(按预期工作,但不是我需要的)
但是 none 有效。任何建议将不胜感激,谢谢!
在.frame(...)
后添加如下代码:
.contentShape(RoundedRectangle(cornerRadius: 16, style: .continuous))