2011-01-06 44 views
1

我嘗試用分頁創建一個簡單的UIScrollView。我希望能夠通過大量的PDF文檔進行滾動,但是這給了我一些問題......用一個大的PDF分頁UIScrollView

我嘗試以下選項:

  • 在啓動轉換所有的PDF頁面的UIImages,這工作原理,但是是開始
  • 手工繪製的PDF頁面中的drawRect很慢,但是再一次,這是慢...

而且我不喜歡一切加載在啓動時而是在做用法。

最近有沒有人這樣做過?似乎無法找到一個很好的示例項目。

Thnx!

耶勒

+0

檢查了這一點:[github.com/vfr/Reader](http://github.com/vfr/Reader)這個項目涵蓋了你所說的一切。 – 2012-11-23 09:46:13

回答

1

此問題是PDF渲染最常見的問題之一。解決方案是緩存有限數量的pdf頁面。由於ios設備的內存不足,當您有較大的pdf文件時,無法緩存所有頁面。

例如Goodreader(最好的iOS PDF閱讀器應用程序之一)也使用緩存機制。 Goodreader在翻頁時緩存3頁;但是,當您更快地翻頁時,它們會出現問題。因爲加載新頁面需要更長的時間。

您首先從Goodreader的解決方案開始,比如您開始使用前一頁,當前頁和下一頁進行緩存。當用戶翻頁時,你應該緩存前一頁或下一頁。

如果我舉個例子;

起點(負載兩頁的內存與後臺線程因爲性能問題):

prev = nil; 
current = page1; 
next = page2; 

當用戶翻轉到下一個頁面;

prev = page1; 
current = page2; 
next = page3 //(Load into the cache); 

有了這個解決方案的邏輯,你有機會超過3頁加載到內存