Swiftui 如何软化矩形快捷界面的边

Swiftui 如何软化矩形快捷界面的边,swiftui,Swiftui,当我尝试使用渐变创建圆角矩形时,我目前遇到了一个“粗糙”边的问题 在这个渐变中,你可以看到拐角处的光线变得特别暗,我不知道如何修复这个问题 我猜这是因为使用了一个扩展来创建渐变,这样我就可以用它作为前景色而不是背景,但我不确定我会用什么来解决这个问题 var body: some View { GeometryReader { geometry in RoundedRectangle(cornerRadius: 20)

当我尝试使用渐变创建圆角矩形时,我目前遇到了一个“粗糙”边的问题

在这个渐变中,你可以看到拐角处的光线变得特别暗,我不知道如何修复这个问题

我猜这是因为使用了一个扩展来创建渐变,这样我就可以用它作为前景色而不是背景,但我不确定我会用什么来解决这个问题

    var body: some View {
        GeometryReader { geometry in
            
            RoundedRectangle(cornerRadius: 20)
                .gradientForeground(colors: [Color("MainColor1"), Color("MainColor2")])
                .frame(width: geometry.size.width * 0.9, height: 100, alignment: .center)
                .padding(.leading, geometry.size.width * 0.05)
        
        }
    }
}

extension View {
    public func gradientForeground(colors: [Color]) -> some View {
        self.overlay(LinearGradient(gradient: .init(colors: colors),
                                    startPoint: .topLeading,
                                    endPoint: .bottomTrailing))
            .mask(self)
    }
}

由于您使用的是
roundedlectangle
,因此正在处理形状,正确的着色方式是
fill
,因此您的问题没有连接到视图以进行扩展,而是关于形状




用例:

extension Shape  {

    public func gradientForeground(colors: [Color]) -> some View {
        self.fill(LinearGradient(gradient: .init(colors: colors), startPoint: .topLeading, endPoint: .bottomTrailing))

    }
}
struct ContentView: View {
    
    var body: some View {

        RoundedRectangle(cornerRadius: 50)
            .gradientForeground(colors: [Color.red, Color.yellow])
            .frame(width: 300, height: 300, alignment: Alignment.center)
  
    }
}