我嘗試用分頁創建一個簡單的UIScrollView。我希望能夠通過大量的PDF文檔進行滾動,但是這給了我一些問題......用一個大的PDF分頁UIScrollView
我嘗試以下選項:
- 在啓動轉換所有的PDF頁面的UIImages,這工作原理,但是是開始
- 手工繪製的PDF頁面中的drawRect很慢,但是再一次,這是慢...
而且我不喜歡一切加載在啓動時而是在做用法。
最近有沒有人這樣做過?似乎無法找到一個很好的示例項目。
Thnx!
耶勒
我嘗試用分頁創建一個簡單的UIScrollView。我希望能夠通過大量的PDF文檔進行滾動,但是這給了我一些問題......用一個大的PDF分頁UIScrollView
我嘗試以下選項:
而且我不喜歡一切加載在啓動時而是在做用法。
最近有沒有人這樣做過?似乎無法找到一個很好的示例項目。
Thnx!
耶勒
退房蘋果的ZoomingPDFViewer樣本:
http://developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Introduction/Intro.html
ZoomingPDFViewer不會真正幫助在這裏。它不包括分頁,也不包括更快的加載。 這可能會對您有所幫助:http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html 將您的PDF繪製到自定義視圖中。這似乎是最有效的技術。
此問題是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頁加載到內存
檢查了這一點:[github.com/vfr/Reader](http://github.com/vfr/Reader)這個項目涵蓋了你所說的一切。 – 2012-11-23 09:46:13