インスタンスメソッド


in(_:)


シェイプスタイルの単位空間座標を、与えられた長方形の絶対座標にマッピングします。





宣言


func `in`(_ rect: CGRect) -> some ShapeStyle



戻り値


rect によって与えられた座標にマッピングされた新しい形状スタイル。



パラメータ


議論


一部の形状スタイルには、UnitPoint 座標に基づいた位置によって異なる色またはパターンがあります。たとえば、開始点と終了点として topbottom を使用して、LinearGradient を作成できます。

let gradient = LinearGradient(

colors: [.red, .yellow],

startPoint: .top,

endPoint: .bottom)

このようなスタイルをレンダリングする場合、SwiftUI は、単位空間の座標を塗りつぶされた形状の絶対座標にマッピングします。ただし、in(_:) メソッドに長方形を指定することで、SwiftUI に別の座標セットを使用するように指示できます。上で定義したグラデーション (gradient) を使用して、2 つのサイズ変更可能な長方形を検討してみましょう。

HStack {

Rectangle()

.fill(gradient)

Rectangle()

.fill(gradient.in(CGRect(x: 0, y: 0, width: 0, height: 300)))

}

.onTapGesture { isBig.toggle() }

.frame(height: isBig ? 300 : 50)

.animation(.easeInOut)

isBigtrue の場合 (他の場所では private State 変数として定義されています)、長方形の高さは変更されたグラデーションの高さと一致するため、長方形は同じように見えます。



ユーザーが HStack をタップして isBig を切り替えると、長方形は縮小しますが、グラデーションはそれぞれ異なる方法で反応します。



SwiftUI は、最初の長方形のグラデーションを新しいフレームの高さに再マッピングするため、より小さな領域ですべての範囲の色を引き続き表示できます。2 番目の長方形の場合、変更されたグラデーションは全部の高さへのマッピングを保持するため、代わりに全体のグラデーションのごく一部しか表示されません。アニメーションは違いを視覚化するのに役立ちます。



以下も見よ




色の変更




目次
Xcode の新機能

  • 利用可能
  • iOS 13.0+
    iPadOS 13.0+
    macOS 10.15+
    Mac Catalyst 13.0+
    tvOS 13.0+
    watchOS 6.0+

    フレームワーク

    SwiftUI


    このページには

  • 宣言
  • 戻り値
  • パラメータ
  • 議論
  • 以下も見よ












  • トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ