在应用程序中实现绘图的最有效方法是什么?

时间:2012-08-12 06:44:53

标签: ios cocoa-touch uiimageview core-graphics

我想在我的PDF阅读器应用程序中实现自由形式绘图。我看到了一个教程,它使用UIImageView作为渲染图形的视图。我试过这个并且效果很好,除非我尝试保存绘图。有时它会阻止我从一个页面转到另一个页面,除非我将边缘轻敲两次,其他时候过渡是平滑的。

那么实现此功能的最佳方法是什么?

- 附加信息 -

要保存图形,我所做的是使用UIImagePNGRepresentation将其保存为图像以将其保存在目录中。保存图像的文件名基于bookId和文档的页码(例如121-5.png)

现在要加载绘图,将调用一个函数,该函数根据图书的ID和页码检查图像是否存在。因此,如果书的ID为121且我在第5页,则该功能将加载图像“121-5.png”。

1 个答案:

答案 0 :(得分:2)

这只是一个猜测(而且我在其中扩展的时间已经太晚了),但是如果你试图以最明显的方式进行保存部分,可能你会拖延主要(UI)线。它可能你不是,如果它是冒昧的,那就很抱歉。如果是这样,这将导致整个界面停止运行,直到图像被渲染,压缩和保存。

两种简单方法来解决这个问题:

  • 启动后台线程来执行此操作,这将释放主线程以响应用户。 (搜索NSOperation是一个开始。这是一个random tutorial
  • 将要保存的UILayer传递到“下一页”,并在转换后执行保存。它仍会让事情有所停滞,但至少用户会考虑下一步该做什么,而你需要几百毫秒才能完成任务。