CALayerのcontentsRectプロパティ(ここのドキュメント)を使用すると、描画に使用するレイヤーの量を定義できます。
いいえ、あなたはそれについて間違って考えています。
画像のどの部分をレイヤーに表示するかをcontentsRect
指定します。contents
その部分は、プロパティに従ってレイヤーに配置されcontentsGravity
ます。
これがkCAGravityResize
デフォルトの場合、レイヤーに合わせてパーツのサイズが変更されます。それはあなたが見ている直感に反する振る舞いを説明するでしょう-あなたはcontentsRect
小さくしますが、レイヤーは同じサイズであるように見え、画像の選択された部分に「ズームイン」しているように見えます。contentsGravity
サイズ変更されないに設定すると、理解しやすくなる場合がありますkCAGravityCenter
。
ほとんどの場合、をcontentsRect
ID rectのサブrectに設定する{ {0, 0}, {1, 1} }
ため、コンテンツの一部のみを表示することを選択します。
(必要に応じて、これらをパーセンテージとして考えてください。contentsRect
サイズがの場合は、の{0.5, 0.5}
50%を選択していますcontents
。)
の一部がcontentsRect
ID長方形の外側にある場合、CAはエッジピクセルをcontents
外側に拡張します。これは便利な場合もありますが、単独で使用するものではありません。マスクまたは他のレイヤーと組み合わせて使用すると、効果が得られます。