UIScrollViewは、含まれているビューの変換を引き継ぐのが好きです。2つの解決策があります:
- 含まれているビューを変更せずに画像を回転します。
- サブレイヤー内に画像を表示するUIViewサブクラスを作成します。
画像を回転させるには、UIImageを90度回転させる方法を参照してください。。常に90度の回転のみを行っている場合は、@PeterSarnowskiのソリューションを参照してください。あなたがここでしていることにそれを適応させるために、それが:であると仮定BaseImg
しUIImageView
ます
- (void) rotateImage
{
UIImage *sourceImage = [baseImg image];
UIImage *rotatedImage = [UIImage imageWithCGImage:[sourceImage CGImage] scale:1.0 orientation:UIImageOrientationRight];
[baseImg setImage:rotatedImage];
}
これは1回だけ回転します。rotateImageを繰り返し機能させるには、既存のプロパティを読み取り、orientation
時計回りまたは反時計回りの順序で次のプロパティに移動します。
baseImg
画像が正方形でない場合は、新しいアスペクト比を反映するようにサイズを変更する必要がある場合もあります。
UIViewサブクラスを作成するCALayer
には、ビューレイヤーのサブレイヤーとしてを保存する必要があります。画像をサブレイヤーに保存し、サブレイヤーを自由に変換します。これはより高速で、任意の回転が可能ですが、回転する画像がビューの境界を超えないように、独自のスケーリングを計算する必要があります。