我正在尝试在矩形上渲染线性渐变。以下是代码:
当我在正方形上呈现它时,一切看起来都正确:
Rectangle()
.foregroundColor(Color.red)
.overlay(
LinearGradient(gradient: Gradient(colors: [.red, .yellow, .blue]), startPoint: .topLeading, endPoint: .bottomTrailing)
)
.frame(width: 300, height: 200)
.position(x: 170, y: 120)
当我在正方形上呈现它时,一切看起来都正确:
然而,当我在矩形上渲染它时,它看起来不再像是从左上角到右下角了。它只是看起来像被裁剪过的相同图像:
以下是SVG中的渲染效果(蓝色似乎不一样,但这并不重要),以及我希望在Swift中看到的效果:
黄色的对角线应该直接从一个角到另一个角,因为我正在指定startPoint: .topLeading, endPoint: .bottomTrailing
。SwiftUI diagonal LinearGradient in a rectangle 这里说这是标准行为,这没问题 - 我不是要说 SwiftUI 渲染有误,我只需要一种方法使它看起来像 svg 中的样子。