2012-08-12 76 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

相關問題