1

我的情况是这样的,我想以编程方式获取用户可见的当前视图的打印屏幕并将其保存到相册中。问题是我不希望层次结构中的所有视图都可见。我的计划是:

  1. 制作视图层次结构的副本。
  2. 隐藏不感兴趣的子视图。
  3. 以打印屏幕为例。
  4. 保存到相册。

问题是我坚持第一点。由于UIView没有实现NSCopying协议,我无法制作视图层次结构的深层副本。我尝试归档和取消归档视图,但这仅在桌面上可用。

正如我所看到的,这里有两个选项:
a)在所有视图和子视图上实现 NSCopying 协议。b)淡化覆盖整个屏幕的白色视图(有点像手动打印屏幕时的闪光效果),在那一刻我隐藏了我想要的视图。

有没有其他方法可以解决我错过的这个问题?

编辑:

    UIGraphicsBeginImageContext([[wordManager mainWorkViewController] view].frame.size);  
    [[[[wordManager mainWorkViewController] view] layer] renderInContext:UIGraphicsGetCurrentContext()];   
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();

最好的问候//Abeansits

4

1 回答 1

0

因此,不幸的是,没有人能够就此事提供任何帮助。我是如何解决问题的:

我删除了打印屏幕中不需要的元素。我使用动画来做到这一点,所以不会有图形闪烁。最后它看起来还不错,可惜我从来没有解决原来的问题。

如果有人找到,请发布修复。此致

//Abeansits

于 2010-07-08T16:00:57.347 回答