Utilisation de cette méthode pour masquer la barre d'état:
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
9 Réponses :
Vous pouvez essayer de définir la propriété ScrollSTotop vers true après la ré-affiche:
[currentView setScrollsToTop:YES];
Très bonne observation. Cela devient probablement confondu avec plusieurs vues. Avoir à voir si je peux trouver une solution de contournement.
Le problème est que c'est un UIWebView qui doit obtenir le comportement de défilement à haut retour - et ce n'est pas une sous-classe UiscrollView directe ... Ainsi que SetScrollSotop: ne fonctionne pas du tout. Il a probablement une vision de défilement quelque part dans sa structure internationale UiWebViewInternal, mais qui semble être très i> opaque. [WebView ValueForKey: @ "_ ScrollView"] n'a pas fonctionné du tout pour en obtenir la prise directe. Tout autre nom suppose? :)
Vous pouvez ajouter l'UIWebView comme sous-vue d'un UISCrollView (dans ma mise en œuvre, il s'agit d'une sous-assisterie d'un utableview). S'il s'agit de la seule vue à l'intérieur de cet UISCrollView, appelez -setscrollsotop sur l'UiscrollView devrait le faire fonctionner sur l'UIWebView ...
Votre nom est vraiment h4x0r, n'est-ce pas :)
+1 pour ceux qui utilisent un UiscrollView associé à un uipageviewController comme moi. Vous devez le supprimer de SuperView dans ViewDidDisappered et l'ajouter à nouveau dans la viewwillappear.
Je viens de courir sur un comportement similaire dans l'application que je travaille actuellement. Dans son cas, si vous chargez une vidéo YouTube à partir d'une UIWebView, faites défiler jusqu'au sommet des arrêts de travail pour le reste du cycle de vie de l'application. Je suppose un peu que cela pourrait arriver après avoir chargé le joueur de cinéma aussi, mais n'a pas confirmé. Cette fonctionnalité existe beaucoup plus longtemps et a probablement moins de bugs. P>
Vous pouvez utiliser le code suivant pour avoir le uiwebview code> Ignorer
ScrollToTotop code> sans le
UISCrollView code>:
Comme cela utilise un appel d'API privé, cela entraînera probablement rejeté votre demande. Vous pourrez peut-être vous échapper avec ((Uiscrollview *) [[Sous-système WebViews] ObjectAindex: 0]). ScrollSTotop = Non; Code>
Merci Alex! Beaucoup plus élégant et sûr à coup sûr.
J'ai eu un problème similaire après avoir joué une vidéo YouTube au sein de mon application. J'ai enfin compris que ma fenêtre d'application n'était plus la fenêtre de la clé. Après avoir ajouté la ligne suivante à une sous-classe UIWindow (que j'ai déjà eu pour d'autres raisons) tout a fonctionné comme il se doit à nouveau: P> ScrollSotop code> était toujours défini sur
Oui CODE> mais Taping La barre d'état n'avait aucun effet.
if (![self isKeyWindow]) [self makeKeyWindow];
J'avais un problème similaire où la fonctionnalité de défilement à haut a été perdue. Il s'avère que cela ne fonctionnera que lorsque vous n'avez qu'une vue active à la fois (dans la même vue de défilement). Dans mon cas, j'avais une vue de table et une autre vue qui s'effacerait. Ajout d'un La réponse était dans le SupprimerfromsuperView Code> à la fin de l'animation a fait l'affaire.
uiscrollview.h code> Fichier Commentaires: P>
/*
this is for the scroll to top gesture. by default, a single scroll visible scroll view with this flag set will get the call. if there is more than one visible with this
flag set or the delegeat method returns NO, the view isn't scrolled
*/
@property(nonatomic) BOOL scrollsToTop; // default is YES. if set, special gesture will scroll to top of view after consulting delegate
La solution suivante par Alex a travaillé pour moi. Merci! Être pressé Ce correctif a fonctionné très bien, cependant donné plus de temps, j'ai peut-être sous-classé l'UIWebView et accéda directement au membre UISCrollView directement. P> L'inquiétude que j'ai avec la méthode Alex 'est qu'il suppose que UiscrollView est à l'index zéro des sous-espaces (encapsulation permet aux membres privés de changer). Qui suggère une autre solution encore: p>
Dans iOS 5.0 Vous pouvez accéder à la propriété ScrollView de ScrollView de l'UIWebView
webView.scrollView.scrollsToTop = YES;
Lorsqu'il y a plusieurs ScrollView, vous pouvez également définir ScrolleutOP to NON pour les autres ScrollView. cf: p>
Setscrollsotop avec plusieurs classes et / ou sous-classes UiscrollView (UitailView) < / a> p>
Je veux ajouter mon cas, j'ajoute un uiWebView sur un UISCrollView, comme S'il y a plus d'une vue de défilement, un message ScrollViefDidscrollTotoPltotop est ignoré P>
BlockQuote> Donc, je reçois un moyen simple de le faire fonctionner sur webview: il suffit de définir la propriété ScrollSotop de ScrollView · S Faux. p> et lorsque vous appuyez sur la barre d'état, il n'a pas été intercepté par la vision de ScrollView et le webview fait défiler vers le haut! P> H4XXR code> avait répondu au sommet:
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.frame = self.view.bounds;
scrollView.scrollsToTop = false; //igore scrollView`s scrollsToTop
[self.view addSubview:scrollView];
UIWebView *webView = [[UIWebView alloc] init];
webView.frame = scrollView.bounds;
[scrollView addSubview:webView];