2012-08-12 59 views
0

我想在我的PDF阅读器应用程序中实现自由形式的绘图。我看到一个教程,它使用UIImageView作为绘制图形的视图。我试过这个,它运作良好,除了当我试图保存绘图。有时它会阻止我从一个页面转到另一个页面,除非我两次敲击边缘,其他时候过渡很平滑。在应用程序中实现图纸的最有效方式是什么?

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

--ADDITIONAL INFO--

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

现在要加载图形,调用一个函数根据图书的ID检查图像是否存在和页码。所以如果这本书的ID是121,我在第5页上,那么这个函数会载入图像“121-5.png”。

+0

您可能需要提供一些关于您遇到的问题的更多信息。你认为转换延迟是由于你如何保存绘图?你是否已经在一个单独的线程中这样做? – 2012-08-12 06:52:52

+0

是的,我认为延迟是由于保存绘图造成的,因为当我做突出显示和其他东西时,一切正常。就在我画画的时候才会提出这个问题。我将添加关于如何保存上述图形的详细信息。 – 2012-08-12 06:59:14

+0

因此,作为一个测试,如果你保持所有的代码相同,除了注释掉保存文件的位,转换都可以正常工作并且流畅吗? – 2012-08-12 07:09:13

回答

2

这只是一个猜测(它太晚了,我很想扩大它),但是如果你试图以最明显的方式做保存部分,可能你会拖延主要(UI )线程。它可能你不是,如果它放肆,那么很抱歉。如果是这样,这将导致整个界面停顿,直到图像被渲染,压缩和保存。

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

  • 启动一个后台线程来做到这一点,这将释放你的主线程来响应用户。 (搜索NSOperation是一个开始,这里是random tutorial
  • 将想要保存的UILayer传递到“下一页”,并在转换后进行保存。它仍然会拖延一些东西,但至少用户会考虑接下来要做什么,并且你有几百毫秒的时间来做一些事情。
+0

感谢您回复亚当!我会尝试你的建议。我会接受你的答案,如果它的工作。再次感谢! :) – 2012-08-12 07:27:35

+0

希望它有帮助。与应用程序祝你好运! – 2012-08-12 15:12:22

+0

它的工作!非常感谢! :) – 2012-08-13 02:44:49

相关问题