如何在不打扰用户的情况下保存图形上下文的一部分?

时间:2010-07-02 15:29:50

标签: iphone cocoa-touch uiview printscreen

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

  1. 制作视图层次结构的副本。
  2. 隐藏不感兴趣的子视图。
  3. 打印屏幕。
  4. 将其保存到相册中。
  5. 问题在于我坚持第一点。由于UIView未实现NSCopying协议,因此无法对视图层次结构进行深层复制。我尝试了归档和取消归档视图,但这只能在dektop上使用。

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

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

    编辑:

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

    祝你好运 // Abeansits

1 个答案:

答案 0 :(得分:0)

所以,遗憾的是,没有人能够就此事提供任何帮助。 我是如何解决这个问题的:

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

如果有任何人找到,请发布修补程序。 最好的问候

// Abeansits