-(IBAction)printDisplay:(id)sender{
CGRect rect = CGRectMake(0.0,44.0,self.view.frame.size.width,self.view.frame.size.height);
NSValue *rectObj = [NSValue valueWithCGRect:rect];
CGRect rectRestored = [rectObj CGRectValue];
UIGraphicsBeginImageContext(CGSizeMake(rectRestored.size.width, rectRestored.size.height-44));
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
}
这是从当前屏幕捕获图像的代码。
问题是我不想让UIToolBar捕获到屏幕上以便做什么。我的应用程序截图如下所示:
在我截取图片截图后:
简而言之,我希望在图像捕捉时删除UIToolBar。 提前花费你的宝贵时间。
@samuel
答案 0 :(得分:0)
在不同视图中保留您的图像和额外内容(包含您想要捕获的内容)并使用该视图进行捕获。
在你的代码中,我们可以说第二个视图命名为secondView所以代码将是:
-(IBAction)printDisplay:(id)sender{
CGRect rect = CGRectMake(0.0,44.0,self.secondView.frame.size.width,self.secondView.frame.size.height);
NSValue *rectObj = [NSValue valueWithCGRect:rect];
CGRect rectRestored = [rectObj CGRectValue];
UIGraphicsBeginImageContext(CGSizeMake(rectRestored.size.width, rectRestored.size.height-44));
[self.secondView.layer renderInContext:UIGraphicsGetCurrentContext()];
viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
}
答案 1 :(得分:0)
如果图像框从工具栏下方开始,则可以从(0,44)开始设置矩形。如果图像框从工具栏下方(0.0)开始,则在通过graphicsContext截取屏幕截图之前设置toolbarObject.hidden = YES;
,然后将其重置为toolbarObject.hidden = NO;
。
答案 2 :(得分:0)
修改代码以便行
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
是
[imageView.layer renderInContext:UIGraphicsGetCurrentContext()];