2011-07-05 25 views

Respuesta

4

he hecho esto. El código fue privado por un cliente que paga, por lo que no puede compartir directamente, pero la idea básica es la de escribir:

  • subclase UIView Uno que hace que una sola página de un PDF, utilizando un CGPDFPageRef y la CGPDFDocument* y CGContextDrawPDFPage familias de funciones. Es una gran ayuda para esta vista para volver [CATiledLayer class] del método de clase layerClass, y para establecer las propiedades levelsOfDetail y tileSize de la capa apropiada. La mía también implementa sizeThatFits para devolver el tamaño de página más una pequeña canaleta, y representa una sombra sutil alrededor del borde de la página pdf.

    Recuerde que el dibujo es UIKit instalado boca abajo en el dibujo CG; así que haz un CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height); CGContextScaleCTM(ctx, 1.0, -1.0); antes de pintar.

  • subclase Una UIView que contiene y se fijan a cabo (y siendo delegado para) un UIScrollView en modo de paginación (el principal buscapersonas horizontal), y una UIScrollView individual para cada página, que contienen cada uno una de las vistas anteriores (para el zoom en individuo páginas.) Las vistas de desplazamiento anidado es la manera explícitamente endosada de Apple de hacer este tipo de cosas. Esta vista deberá diseñar las páginas como las desee; presumiblemente en una larga franja horizontal, cada una ampliada a un tamaño apropiado.

    Si no es necesario zoom de página, puede saltarse los puntos de vista de desplazamiento anidados y diseñar las páginas vistas directamente en la barra de desplazamiento horizontal.

TL; DR: Desafortunadamente no es tan simple como lanzarlo en un UIWebView; pero es factible, y el enfoque directo funciona.

Cuestiones relacionadas