我正在设置旋转并使用
水平翻转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,而不会在帧中进行更改。
答案 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即可。这会将您的图像转换回原始图像。
希望这有助于您正在寻找的内容:)