2009-03-23 4 views

Répondre

1

NOTE: cette réponse est de 2009. S'il vous plaît voir l'une des meilleures solutions pour un âge plus civilisé.


Le défilement programmé de UIScrollView est maintenant un problème résolu. J'ai une discussion détaillée sur comment (et pourquoi) le zoom UIScrollView fonctionne, un exemple de projet et la classe ZoomScrollView qui encapsule la magie de zoom requise à github.com/andreyvit/ScrollingMadness/.

Alors probablement vous devriez mettre vos images à l'intérieur de UIScrollView comme Andy conseillé.

+0

Vous avez totalement raison. Dans le temps à partir de quand j'ai posé ma question à présent, j'ai fini par le faire d'une manière similaire (pas aussi complète) à votre "ScrollingMadness". – Mike

+7

Alors, comment cela aide-t-il à faire défiler une UIWebView et à définir un niveau de zoom? –

+0

@BillCheswick Peut-être le temps de supprimer cette réponse? C'est accepté, cependant, je ne sais pas si je suis censé faire ça ou pas. –

0

Il ne semble pas y avoir une façon documentée de faire ce que vous voulez. Une alternative qui ne résout que la moitié de votre problème consiste à utiliser un UIScrollView. Vous pouvez mettre UIImageViews à l'intérieur de votre UIScrollView et ensuite faire défiler jusqu'à n'importe quelle position dans la vue déroulante. Cela ne vous permet pas de zoomer par programmation sur la vue. Si c'est quelque chose que vous pensez devrait être ajouté au fichier SDK un radar: http://bugreport.apple.com/

8

Définissez l'attribut scalesPageToFit de UIWebView sur YES. Ensuite, la page Web est mise à l'échelle pour s'adapter et l'utilisateur peut zoomer et dézoomer.

0
for (id subview in webview) 
    if ([[subview class] isSubclassOfClass: [UIScrollView class]]) { 
     ((UIScrollView *)subview).bounces = NO; 
    } 
} 

essayez d'utiliser cette scrollview.

2

Vous pouvez utiliser ceci:

for (UIView *subview in webView.subviews) { 
    if ([subview isKindOfClass:[UIScrollView class]]) { 
     ((UIScrollView *)subview).bounces = NO; 
     [((UIScrollView *)subview) setZoomScale:10.5f animated:YES]; 
    } 
} 

Il est peut-être la solution à votre problème.

+0

pourquoi ne pas utiliser webView.scrollView.minimumZoomScale = 0.5; OU webView.scrollView.maximumZoomScale = 20.0; etc – Umair