UIGraphicsBeginImageContext(backgroundImageView.frame.size);
UIImageView *image1 = backgroundImageView;
UIImageView *image2 = boat;
// Draw image1
[image1.image drawInRect:CGRectMake(0, 0, image1.image.size.width, image1.image.size.height)];
// Draw image2
[image2.image drawInRect:CGRectMake(boat.center.x, boat.center.y, boat.image.size.width, boat.image.size.height)];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
当显示resultImage时,我将image2设置为等于船UIImageView后,不会保留image2的变换角度值。我认为当我设置image2 = boat时,船的变换值会转移到image2。
我怀疑这与我正在使用UIImageView而不是UIVIew这一事实有关。我尝试了很多不同的东西,但一直无法解决这个问题。
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:3)
当您将图像绘制到图形上下文中时,它使用上下文的变换矩阵,该矩阵不同于应用于视图的任何变换。因此,image2
(大概是UIImageView
)的转换与直接图像绘制完全无关。
您可以使用Quartz中的各种CGContext
和CGAffineTransform
函数指定新转换,也可以直接应用 UIImageView
'的副本像这样的转变:
CGContextConcatCTM(UIGraphicsGetCurrentContext(), someView.transform);
[someView.image drawInRect: CGRectMake(...)];