インスタンスメソッド
in(_:)
シェイプスタイルの単位空間座標を、与えられた長方形の絶対座標にマッピングします。
宣言
func `in`(_ rect: CGRect) -> some ShapeStyle
戻り値
rect によって与えられた座標にマッピングされた新しい形状スタイル。
パラメータ
rect
形状スタイルをマッピングするための絶対座標を与える長方形。
議論
一部の形状スタイルには、UnitPoint 座標に基づいた位置によって異なる色またはパターンがあります。たとえば、開始点と終了点として top と bottom を使用して、LinearGradient を作成できます。
let gradient = LinearGradient(
このようなスタイルをレンダリングする場合、SwiftUI は、単位空間の座標を塗りつぶされた形状の絶対座標にマッピングします。ただし、in(_:) メソッドに長方形を指定することで、SwiftUI に別の座標セットを使用するように指示できます。上で定義したグラデーション (gradient) を使用して、2 つのサイズ変更可能な長方形を検討してみましょう。
HStack {
}
.onTapGesture { isBig.toggle() }
.frame(height: isBig ? 300 : 50)
.animation(.easeInOut)
isBig が true の場合 (他の場所では private State 変数として定義されています)、長方形の高さは変更されたグラデーションの高さと一致するため、長方形は同じように見えます。
ユーザーが HStack をタップして isBig を切り替えると、長方形は縮小しますが、グラデーションはそれぞれ異なる方法で反応します。
SwiftUI は、最初の長方形のグラデーションを新しいフレームの高さに再マッピングするため、より小さな領域ですべての範囲の色を引き続き表示できます。2 番目の長方形の場合、変更されたグラデーションは全部の高さへのマッピングを保持するため、代わりに全体のグラデーションのごく一部しか表示されません。アニメーションは違いを視覚化するのに役立ちます。
以下も見よ
色の変更
func opacity(Double) -> Color
色の不透明度に与えられた量を乗算します。