2011-07-05 13 views

Odpowiedz

4

Zrobiłem to. Kod był prywatny za płatniczej klienta, więc nie mogę podzielić się nim bezpośrednio, ale podstawowa idea jest napisać:

  • Jedna podklasa UIView że renderuje jedną stronę PDF, używając CGPDFPageRef i tym CGPDFDocument* i CGContextDrawPDFPage rodzin funkcji. Bardzo pomaga to widokowi zwrócić [CATiledLayer class] z metody klasy layerClass i odpowiednio ustawić właściwości levelOfDetail i tileSize warstwy. Kopalnia implementuje także sizeThatFits, aby zwrócić rozmiar strony i małą rynnę, i wyświetla subtelny cień na krawędzi strony pdf.

    Pamiętaj, że rysunek UIKit jest odwrócony z rysunku CG; więc przed malowaniem wykonaj CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height); CGContextScaleCTM(ctx, 1.0, -1.0);.

  • Jeden UIView podklasy napełniania i układania (i jest delegatem) ą UIScrollView tryb przywołania (główny pagera poziomą), a jednostka UIScrollView na każdej stronie, z których każdy zawiera jeden z wymienionych aspektów (na powiększanie się indywidualnie strony.) Zagnieżdżone widoki przewijania to wyraźnie poparty przez Apple sposób robienia tego typu rzeczy. Ten widok będzie musiał ułożyć strony w taki sposób, w jaki chcesz je mieć; przypuszczalnie w jednym długim poziomym pasku, z których każdy jest powiększony do rozmiaru dopasowanego.

    Jeśli nie potrzebujesz powiększania strony, możesz pominąć zagnieżdżone widoki przewijania i ułożyć widoki strony bezpośrednio w poziomym przewijaku.

TL; DR: Niestety nie jest to tak proste, jak wyrzucenie go w UIWebView; ale jest to wykonalne, a proste podejście działa.

Powiązane problemy