J'ai un UIWebView
qui dans un UIScrollView
(scrollview contient un autre composant)
J'ai essayé d'activer le multitouch à la fois sur Interface Builder ou sur Programmatique , UIWebView
mais il ne peut toujours pas zoomer pour le html, dois-je gérer à la fois le zoom avant UIScrollView
et UIWebView
? Ou quelque chose que je n'ai pas à régler?
objective-c
ios
cocoa-touch
uiwebview
zoom
calendrierw
la source
la source
scalesPageToFit = YES
cela fonctionne mais cela change la taille de votre contenu par défaut, regardez ma réponse cela vous sera utile.Réponses:
Vous DEVEZ définir scalePageToFit = YES pour que tout pincement et zoom fonctionne sur un UIWebView
la source
OK, vous devez faire à la fois ce qui précède, mais aussi ce qui suit. J'avais une vue Web dans la vue principale, et cela ne fonctionnait pas.
<UIScrollViewDelegate>
dans votre contrôleur de vue, faites glisser le délégué de vue de défilement vers le contrôleur de vue dans Interface Builder et implémentez laviewForZoomingInScrollView
méthode. Cela doit renvoyer le pointeur vers UIScrollView (return myScrollView).la source
Avec JavaScript, vous pouvez contrôler le niveau de zoom, bien que la seule solution que j'ai trouvée ne semble pas fluide.
Dites que vous avez dans
<head>
:Pour zoomer jusqu'à 4x, tout en permettant à l'utilisateur de modifier le zoom, modifiez le contenu deux fois:
Changer la largeur est très important - sinon Mobile Safari a de sérieux bugs de repeinture (en raison d'une sur-optimisation).
Vous ne pouvez pas simplement régler à
initial-scale
nouveau - il est ignoré la deuxième fois.la source
Vous devez implémenter la méthode viewForZoomingInScrollView dans votre contrôleur, sinon le zoom ne fera rien. (Je ne sais pas vraiment pourquoi cela devrait être nécessaire, mais voilà.)
Pour des informations détaillées, voir http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html .
la source