私はこの回答を見つけることができません。Howto CALayerの境界から独立したCALayerの画像スケール
calayerのイメージサイズをcalayerの境界のサイズよりも小さくする方法を知りたいと思います。
私はiPadゲームでいくつかのポーンを持っています。それぞれはCALayerであり、contentsGravity = kCAGravityResizeAspectでサイズを変更しています。画像は30x30のCALayerの内部に128x128ですので、画像は自動的に30x30にリサイズされ、両方がボックスなのでアスペクト比は維持され、機能します。
ここで私はCALayerの境界をスーパービューのサイズに比例して設定していますので、Pawnは常に同じ相対サイズをビューに表示します。私の場合にはCALayerの境界がタッチのために小さい30×30の最大値を取得すること
-(void) setSpriteScaleToDice {
CGFloat newSize = [self superlayer].bounds.size.width * 0.066666667f;
self.bounds=CGRectMake(0.0f, 0.0f, newSize, newSize);
self.contentsGravity = kCAGravityResizeAspect;
}
注:この1はCALayerのの私のスプライトクラスのサブクラス内にあります。それは私が直面している問題です。小さなサイズのため、タッチするのが難しく、時にはタッチが失敗することがあります...
私が考えている考えの1つは、画像を元のサイズに保ちます。問題は私がたくさんの検索をして、contentsGravity、contentsCenter、contentsScaleなどでいくつかのオプションを試してみたところ成功しなかったことです。しかし私は、ビットマップの変形を得る。特に
、進むべき道は、(contentsGravityを使用していない)contentsCenterであるようにリンゴのドキュメントごとに見えるよう、...
、任意のアイデアが本当に歓迎されてください、と事前のおかげで、
ルイス
あなたは層の境界よりも小さいCGImageを作り、kCAGravityResizeAspectを使用してみましたか? –
あなたの答えをありがとう、私はそれを試してみました、問題は "時々"私は128x128に境界を増加させる必要があり、小さな元のcgimageから来て、多くの解像度を失うだろうということです。 –