将当前屏幕保存为图片

今天在修改登陆界面时有个需求,点击登陆按钮要求以渐显得方式弹出登录窗口,窗口居中,窗口周围以半透明方式显示上个控制器的图片.于是用到了模态推出的以下方法.

controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

渐显实现了,但登录窗口周围是黑色,无法透视到上个控制器的视图.于是我想到一个方法:截取上一个控制器的屏幕,设为登陆控制器的背景图.

{
//创建一个基于位图的图形上下文并指定大小 UIGraphicsBeginImageContext([UIScreen mainScreen].bounds.size);
AppDelegate *delegate = [UIApplication sharedApplication].delegate;

//获取根控制器,这里如果直接用self.view而不用tabbarC.view,是截取不到tabbar的,因为截图只能截取当前视图及其子视图,而tabbar不是其子视图.(如果没有tabbar,可以直接用self.view)
  [delegate.tabbarC.view.layer renderInContext:UIGraphicsGetCurrentContext()];
//获取处理的图形 UIImage *image=UIGraphicsGetImageFromCurrentImageContext(); //移除上下文
  UIGraphicsEndImageContext(); return image; }

 

posted on 2015-11-25 20:30  图灵1991  阅读(276)  评论(0编辑  收藏  举报

导航