我的情况是这样的,我想以编程方式获取用户可见的当前视图的打印屏幕并将其保存到相册中。问题是我不希望层次结构中的所有视图都可见。我的计划是:
- 制作视图层次结构的副本。
- 隐藏不感兴趣的子视图。
- 以打印屏幕为例。
- 保存到相册。
问题是我坚持第一点。由于UIView
没有实现NSCopying
协议,我无法制作视图层次结构的深层副本。我尝试归档和取消归档视图,但这仅在桌面上可用。
正如我所看到的,这里有两个选项:
a)在所有视图和子视图上实现 NSCopying 协议。b)淡化覆盖整个屏幕的白色视图(有点像手动打印屏幕时的闪光效果),在那一刻我隐藏了我想要的视图。
有没有其他方法可以解决我错过的这个问题?
编辑:
UIGraphicsBeginImageContext([[wordManager mainWorkViewController] view].frame.size);
[[[[wordManager mainWorkViewController] view] layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
最好的问候//Abeansits