2 つのスライダーがあります。1 つは画像サイズを変更するためのもので、もう 1 つはこの画像を回転させるためのものです。私のイメージビューは 60x60 です。問題は、CGAffineTransformMakeRotation を使用して画像を回転させることですが、その後サイズを変更しようとすると (スライダーを使用して 60x60 から 65x65 に変更するなど)、奇妙な動作をします - 画像ビューのフレームが 80x2 のように変更されました。どうすればこれを回避できますか? 画像のサイズを変更するスライダーのコードは次のとおりです。
-(IBAction)imageSliderAction:(UISlider *)sender
{
NSUInteger value = sender.value;
float oldCenterX = logoImageView.center.x;
float oldCenterY = logoImageView.center.y;
newWidth = value;
newHeight = value;
CGRect frame = [logoImageView frame];
frame.size.width = newWidth;
frame.size.height = newHeight;
[logoImageView setFrame:frame];
logoImageView.center = CGPointMake(oldCenterX, oldCenterY);
}
そして、ここに私の回転スライダーのコードがあります:
-(IBAction)rotationSliderAction:(UISlider *)sender
{
NSUInteger angle = sender.value;
if (sender.value >= 1)
{
CGAffineTransform rotate = CGAffineTransformMakeRotation(angle / 180.0 * 3.14);
[logoImageView setTransform:rotate];
}
if (sender.value <= 0 )
{
CGAffineTransform rotate = CGAffineTransformMakeRotation( (360 + sender.value) / 180.0 * 3.14);
[logoImageView setTransform:rotate];
}
}
回転時にフレームの幅と高さを自動変更しないようにするにはどうすればよいですか? その後、画像のサイズを正しく変更できないためです。