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)
}
}