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

时间:2013-07-09 10:38:35

标签: iphone ipad

我正在设置旋转并使用

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

此操作会更改UOmageView的xOrigin + yOrigin + width + height。

我可以维护或重置新原点到UIImageView的实际来源吗?或者我不能只旋转UIImageView,而不会在帧中进行更改。

1 个答案:

答案 0 :(得分:2)

您可以在应用变换之前将原点存储到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即可。这会将您的图像转换回原始图像。

希望这有助于您正在寻找的内容:)