将当前屏幕保存为图片

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

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   图灵1991  阅读(281)  评论(0编辑  收藏  举报

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示