6
votes

Désactiver le comportement de défilement par défaut UIWebView à l'aide de l'objectif-c

Je sais que vous pouvez utiliser un JavaScript pour faire ce xxx

est un moyen de faire la même chose en utilisant l'objectif-C?


0 commentaires

4 Réponses :


7
votes

Essayez ceci ... XXX PRE>

EDIT: STRY> Ajout de chèques à une réponse originale en fonction du commentaire ci-dessous P>

UIView * v = [[webView subviews] lastObject];
if([v isKindOfClass:[UIScrollView class] ]) {
    if ([v respondsToSelector:@selector(setScrollEnabled]) {
        [v setScrollEnabled:NO];
    }
    if ([v respondsToSelector:@selector(bounces)]) {
        [v bounces:NO];
    }
}


6 commentaires

C'est une très mauvaise idée. UIWebView La hiérarchie de la vue interne peut changer dans n'importe quelle mise à jour du système d'exploitation. Au moins, vérifiez si la Sous-site répond à ces méthodes avant de les appeler.


Pouvez-vous expliquer ce que cela signifie? est lastObject l'élément ?


@Melina La dernière sous-évaluation de l'UIWebView, @Rpetrich a ajouté le chèque, thx


La dernière sous-évaluation de l'UIWebView est la zone de contenu actuelle? à droite?


Un couple notes .. Il est surchargé de vérifier les méthodes spécifiques, car vous savez déjà que c'est un UISCrollView, vous savez donc quelles méthodes cela aura. En outre, il est setbounces: non , pas rebondit: non .


Tout fonctionne sans setbounces:, Setscrollenabled: est suffisant.



1
votes

Utilisation @ Aaron-Saunders et @ Matt-Rix's Réponses, voici ce qui fonctionne le mieux pour moi: xxx


0 commentaires

2
votes

Vous pouvez également accéder à la société ScrollView comme ceci:

webView.scrollView.scrollEnabled = false;
webView.scrollView.bounces = false;


0 commentaires

0
votes

Pas besoin d'utiliser des méthodes complexes. Vous pouvez accéder à ScrollView de WebView directement comme ci-dessous.

web_view.scrollview.scrollenabled = non;


0 commentaires