![見出し画像](https://assets.st-note.com/production/uploads/images/97961380/rectangle_large_type_2_cc62dc01d4f37401b4aea7f9f9e95d25.png?width=800)
Photo by
air_mezzanine
SwiftUI 背景をグラデーションする方法
こんばんは! りーさんです。
今回はグラデーションの仕方について書いていきます。
LinearGradient
グラデーションは、始点と終点で定義された軸に沿って色関数を適用します。グラデーションは、グラデーションで塗りつぶされた各形状の境界四角形に単位空間ポイントをマップします。
今回はこちらを使用していきます。
線形グラデーションの作成
init(gradient: Gradient, startPoint: UnitPoint, endPoint: UnitPoint)
ベース グラデーションから線形グラデーションを作成します。
グラデーションを縦にしたい場合
struct ContentView: View {
let gradient = Gradient(stops: [.init(color: Color.blue, location: 0.0), .init(color: Color.pink, location: 0.5)])
var body: some View {
ZStack {
LinearGradient(gradient: gradient, startPoint: .top, endPoint: .bottom)
Text("HELLO WORLD")
.font(.system(size: 60).bold())
}
}
}
実際の描写(縦)
![](https://assets.st-note.com/production/uploads/images/97961814/picture_pc_0cb4a9e1f8090fa320778f217d5f9bcd.png?width=1200)
それぞれ、startPointとendPointの向きは10種類あるみたいです。
.bottom
.bottomLeading
.bottomTrailing
.center
.leading
.trailing
.top
.topLeading
.topTrailing
.zero
グラデーションを横にしたい場合
struct ContentView: View {
let gradient = Gradient(stops: [.init(color: Color.blue, location: 0.0), .init(color: Color.pink, location: 0.8)])
var body: some View {
ZStack {
LinearGradient(gradient: gradient, startPoint: .leading, endPoint: .trailing)
Text("HELLO WORLD")
.font(.system(size: 60).bold())
}
}
}
実際の描写(横)
![](https://assets.st-note.com/production/uploads/images/97962542/picture_pc_ef82ba649b0d2d682d4a19fb3d0ce1aa.png?width=1200)
グラデーションを斜めにしたい場合
struct ContentView: View {
let gradient = Gradient(stops: [.init(color: Color.blue, location: 0.0), .init(color: Color.pink, location: 0.8)])
var body: some View {
ZStack {
LinearGradient(gradient: gradient, startPoint: .topLeading, endPoint: .bottomTrailing)
Text("HELLO WORLD")
.font(.system(size: 60).bold())
}
}
}
実際の描写(斜め)
![](https://assets.st-note.com/production/uploads/images/97962859/picture_pc_c562721e34fc83d49972ab9f6ee328ab.png?width=1200)
以上!グラデーションの仕方の紹介でした。
この記事が気に入ったらサポートをしてみませんか?