将当前屏幕保存为图片
今天在修改登陆界面时有个需求,点击登陆按钮要求以渐显得方式弹出登录窗口,窗口居中,窗口周围以半透明方式显示上个控制器的图片.于是用到了模态推出的以下方法.
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; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步