132 votes

Comment puis-je activer le zoom avant sur UIWebView qui à l’intérieur de la UIScrollView ?

J’ai un qui à l’intérieur un (scrollview contiennent un autre composant)

J’ai essayé d’activer le multitouch sur Interface Builder ou programmatique sur mais il ne peut pas toujours zoomer pour html, ce que je dois gérer deux zoom avant à le et `` ? Ou quoi que ce soit, que je n’ai pas à régler ?

347voto

john geshrick Points 2016

Vous devez définir scalesPageToFit = YES pour n’importe quel pincement et zoom pour travailler sur un UIWebView

15voto

Kundapra Hudga Points 930

Si vous utilisez WebView par programme, vous pouvez utiliser ce code

autres sages, activez simplement la Page échelle à Fit en XIB au catalogue...

12voto

Jay Imerman Points 2793

OK, vous avez besoin de faire les deux ci-dessus, mais aussi les suivantes. J'ai eu un affichage web, dans la vue principale, et qui n'a pas fonctionné.

  1. Comme ci-dessus, vous devez d'abord mettre un UIScrollView dans l'écran principal, puis placez-le web de vue dans le défilement de la vue.
  2. Comme ci-dessus, de mettre en oeuvre <UIScrollViewDelegate> de votre point de vue contrôleur, faites glisser le défilement de l'affichage délégué à la vue du contrôleur dans Interface Builder, et de mettre en œuvre l' viewForZoomingInScrollView méthode. Ce doit retourner le pointeur de la UIScrollView (retour myScrollView).
  3. J'ai créé IBOutlet propriétés pour l'affichage web et le défilement de la vue - lien de la PLUME à votre vue-contrôleur.
  4. Sur le Défilement de l'Affichage, aller aux Attributs de l'Inspecteur, définissez votre Max et Min les facteurs de zoom (j'ai mis 0,5 à 5,0, qui fonctionne bien).
  5. Sur le Web, dans les Attributs de l'Inspecteur:
  6. Dans la Vue Web, sélectionnez Échelles de Pages afin De les Adapter
  7. Dans la section Affichage, sélectionnez le Mode, "en Haut à Gauche"
  8. Dans la section Affichage en bas, cochez l'Interaction de l'Utilisateur est Activée, et Plusieurs Tactiles

3voto

robocat Points 1567

Avec JavaScript, vous pouvez contrôler le niveau de zoom, bien que l'oly solution que j'ai trouvé n'a pas un aspect lisse.

Disons que vous avez en <head>:

<meta id="vp" name="viewport" content="width=768,initial-scale=1.0">

Pour effectuer un zoom 4x, tout en permettant à l'utilisateur de changer de zoom, de modifier le contenu deux fois:

var vp = document.getElementById('vp');
vp.content = "width=767,minimum-scale=4.0,maximum-scale=4.0,user-scalable=yes";
vp.content = "width=768,minimum-scale=0.25,maximum-scale=10.0,user-scalable=yes";

Le basculement de la largeur est très important, car sinon le navigateur Safari Mobile a de graves repeindre bugs (due à la sur-optimisation).

Vous ne pouvez pas simplement fixé initial-scale de nouveau - il est ignoré, la deuxième fois.

2voto

apenwarr Points 4956

Vous devez implémenter la méthode viewForZoomingInScrollView dans votre contrôleur ou le zoom ne fera rien. (Je ne sais pas vraiment pourquoi cela devrait être nécessaire, mais voilà.)

Pour plus d'informations, voir http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X