0

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

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

- 附加信息 -

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

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

4

1 回答 1

2

这只是一个猜测(我在此进行大量扩展为时已晚),但如果您尝试以最明显的方式进行保存部分,则可能您正在暂停主(UI)线程。可能你不是,如果它冒昧的话,很抱歉。如果是这样,这将导致整个界面停止运行,直到图像被渲染、压缩和保存。

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

  • 启动一个后台线程来执行此操作,这将释放您的主线程以响应用户。(搜索NSOperation是一个开始。这里有一个随机教程
  • 将要保存的 UILayer 传递到“下一页”,并在转换后进行保存。它仍然会使事情停滞不前,但至少用户会考虑下一步该做什么,而您将有 100 毫秒的时间来做某事。
于 2012-08-12T07:23:34.537 回答