2012-06-27 50 views
0

我希望将背景(UIImageView)合并到覆盖的UIView(MyView),然后截取合并的图像。我使用下面的代码,但背景完全覆盖了我的UIView ...请提供任何建议吗?在截取屏幕截图之前合并UIView和UIImageView

UIImageView *ViewToBeAddedAsBackground = BackgroundImageView;  
ViewToBeAddedAsBackground.frame = CGRectMake(0,0,770,410); 
[MyView addSubview:ViewToBeAddedAsBackground];  

UIGraphicsBeginImageContext(MyView.frame.size); 
[MyView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *MyView_IMAGE = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
UIImageWriteToSavedPhotosAlbum(MyView_IMAGE, nil, nil, nil); 

回答

1

这是因为要添加ViewToBeAddedAsBackgroundyourView一个subView,所以它通常会覆盖它,你应该做的是相反的,加yourView作为ViewToBeAddedAsBackground

子视图然后

[insertSubview:ViewToBeAddedAsBackground.layer renderInContext:UIGraphicsGetCurrentContext()]; 

你可以尝试以下,根据您目前的看法heirarcy它可以工作

[MyView.superview insertSubview:ViewToBeAddedAsBackground belowSubview:MyView]; 
UIGraphicsBeginImageContext(MyView.frame.size); 
[MyView.superview.layer renderInContext:UIGraphicsGetCurrentContext()]; 
+0

谢谢!发布后我立即想到了它。我解决了这个问题[MyView sendSubviewToBack:ViewToBeAddedAsBackground]; 无论如何,谢谢。 – jeddi