在IOS中查看截图时避免UI挂起的更好方法。

时间:2016-03-09 08:12:45

标签: ios objective-c iphone uiview nsdata

我开始搜索"如何在IOS"中以编程方式截取屏幕截图。

找到结果:

  • 选项1:renderInContext
  • 选项2:drawViewHierarchyInRect(不适用于我的情况)

避免每次在collectionView cellForItemAtIndexPath

中绘制和加载视图

我:

  • 截取多个隐藏自定义视图的屏幕截图
  • 将其屏幕截图保存在本地目录中
  • UICollectionview单元格中的本地目录加载图片。

这里的问题是当我在主线程中使用[view.layer renderInContext:UIGraphicsGetCurrentContext()]制作UIView的屏幕截图时,它会让UI冻结一段时间。

是否有任何替代方案可以避免?

我尝试了dispatch_async,但它无效。

作为替代方案,我尝试使用NSKeyedArchiver将绘制的视图保存为数据, 我的自定义视图通过writeToFile : atomically选项保存为本地目录中的数据。

后来我使用NSKeyedUnArchiver从本地目录中保存的数据中提取视图。

这里的问题是绘制的上下文(drawInRect)自定义视图未来。

当从未归档数据加载视图时,仅查看其框架,标签和文本等属性。

感谢任何帮助。

提前致谢。

0 个答案:

没有答案