2010-08-11 7 views
1

Je crée une application ipad. Il a juste 2 vues. Une vue a peu de boutons. Au clic d'un bouton, il ouvrira une autre vue. Cette vue a un webview qui montre le dossier de pdf. J'utilise le code suivant pour afficher le PDFproblème d'orientation ipad avec webview

- (void)viewDidLoad { 
[super viewDidLoad]; 
NSString* path = [[NSBundle mainBundle] pathForResource:@"mypdf" ofType:@"pdf"]; 
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]]; 

}

Maintenant, le problème est que, quand je change l'orientation, vue entière est en rotation, mais le pdf est perturbé et non rendu correctement . Comment puis-je éviter ça? Comme le PDF a 250 pages, recharger tout le PDF sur willRotateToInterfaceOrientation et didRotateFromInterfaceOrientation retardera l'affichage.

Comment éviter cette situation.

+0

pourriez-vous s'il vous plaît donner des détails sur « dérangé un d ne rend pas correctement "? –

+0

Je viens aussi de découvrir cet effet, pour moi il rend la moitié de chaque page (chargée et pas nécessairement toutes) à un offset Y constant. La moitié qui est mal interprétée alterne avec chaque page. –

Répondre

1

Il doit y avoir un moyen de mieux pour éviter/résoudre ce problème, pour l'instant je viens de lire la position de défilement y avec:

int scrollPosition = [[webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue]; 

ensuite rechargées le document en:

(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation; 

et puis régler à nouveau la position de défilement avec:

[webView stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat:@"scrollTo(0,%d)",scrollPosition];