问题:我正在尝试在 SwiftUI 中渲染矩形形状的对角线性渐变。
我实现了一个标准的多站线性渐变,当渲染为正方形时它工作得很好,但是当我将框架更改为矩形时,它有一些奇怪的行为,并且看起来更水平,或者有一些奇怪的剪裁。
Code:
struct CustomGradient: View {
var body: some View {
LinearGradient(
gradient: Gradient(stops: [
.init(color: Color(#colorLiteral(red: 0.776, green: 0.266, blue: 0.988, alpha: 1)), location: 0),
.init(color: Color(#colorLiteral(red: 0.356, green: 0.348, blue: 0.870, alpha: 1)), location: 0.62),
.init(color: Color(#colorLiteral(red: 0.357, green: 0.349, blue: 0.870, alpha: 1)), location: 1)
]),
startPoint: .bottomTrailing,
endPoint: .topLeading
)
}
If I render the preview as a square, it works fine
Preview:
Code:
struct BrandGradient_Previews: PreviewProvider {
static var previews: some View {
BrandGradient()
.frame(width: 300, height: 300)
}
}
However, if I change the preview frame to .frame(width: 300, height: 100)
, it renders incorrectly (IMO):
如何获得在矩形和正方形中从一个角到另一个角渲染的渐变?