मैंने यह किया है। कोड के भुगतान करने वाले ग्राहकों के लिए निजी था, इसलिए मैं इसे सीधे साझा नहीं कर सकते, लेकिन मूल विचार लिखने के लिए:
एक UIView उपवर्ग है कि एक पीडीएफ के एकल पृष्ठ प्रस्तुत हुई है, एक CGPDFPageRef
और का उपयोग कर CGPDFDocument*
और CGContextDrawPDFPage
कार्यों के परिवार। यह layerClass
कक्षा विधि से [CATiledLayer class]
वापस करने के लिए इस दृश्य के लिए एक बहुत बड़ा सौदा करने में मदद करता है, और परत के स्तर को उचित रूप से सेट करने के लिए और उचित रूप से टाइल आकार गुण सेट करने के लिए। मेरा पृष्ठ आकार और एक छोटे गटर को वापस करने के लिए sizeThatFits
लागू करता है, और पीडीएफ पृष्ठ के किनारे के आसपास एक सूक्ष्म बूंद छाया प्रदान करता है।
याद रखें कि UIKit ड्राइंग सीजी ड्राइंग से ऊपर की ओर है; तो पेंटिंग से पहले CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height); CGContextScaleCTM(ctx, 1.0, -1.0);
करें।
एक UIView उपवर्ग युक्त और बिछाने (और के लिए प्रतिनिधि होने के नाते) पेजिंग मोड (मुख्य क्षैतिज पेजर) में एक UIScrollView, और इसके बाद के संस्करण विचारों में से हर एक से युक्त प्रत्येक पृष्ठ के लिए एक व्यक्ति UIScrollView, (व्यक्तिगत में ज़ूम के लिए पेज।) नेस्टेड स्क्रॉल व्यू ऐप्पल के इस तरह की चीज करने का स्पष्ट रूप से अनुमोदित तरीका है। इस दृश्य को पृष्ठों को निर्धारित करने की आवश्यकता होगी कि आप उन्हें कैसे चाहते हैं; संभवतः एक लंबी क्षैतिज पट्टी में, प्रत्येक एक फिटिंग आकार के लिए ज़ूम किया।
यदि आपको पृष्ठ ज़ूमिंग की आवश्यकता नहीं है, तो आप नेस्टेड स्क्रॉल दृश्यों को छोड़ सकते हैं और पृष्ठ दृश्यों को क्षैतिज स्क्रोलर में सीधे रख सकते हैं।
टीएल; दुर्भाग्य से यह UIWebView में इसे फेंकने जितना आसान नहीं है; लेकिन यह करने योग्य है, और सीधा दृष्टिकोण काम करता है।