在旋转和翻转后,将UIImageView的xOrigin和yOrigin设置为其原始值



我正在使用设置UIImageView的旋转和水平翻转

#define DegreesToRadians(x) ((x) * M_PI / 180.0)
imageView.transform = CGAffineTransformConcat(CGAffineTransformMakeScale(-1, 1),CGAffineTransformMakeRotation(DegreesToRadians(-5))); 

此操作将更改UIImageView的xOrigin+yOrigin+width+height。

我可以维护新的原点或将其重置为UIImageView的实际原点吗?或者我不能只旋转UIImageView,而不更改帧。

在应用变换之前,可以将原点存储到CGPoint变量中。之后,将其指定给您的图像视图。

CGPoint origin = imageView.frame.origin;
imageView.transform = CGAffineTransformConcat(CGAffineTransformMakeScale(-1, 1),CGAffineTransformMakeRotation(DegreesToRadians(-5)));
imageView.frame = CGRectMake(origin.x, origin.y, imageView.frame.size.width, imageView.frame.size.height);
// or
CGRect frame = imageView.frame;
frame.origin = origin;
imageView.frame = frame;

更新

如果你想撤消你的旋转,并想回到你以前的外观,请使用:

imvCoverPhoto.transform = CGAffineTransformConcat(CGAffineTransformMakeScale(-1, 1),CGAffineTransformMakeRotation(DegreesToRadians(0)));

只需要在DegreesToRadians中传递0。这会将您的图像转换回原始图像。

希望这对您有所帮助,也正是您想要的:)

最新更新