descargar caracteristicas audifonos ios7

caracteristicas - Posición de desplazamiento inicial de la vista web de iOS7 en la barra de navegación



ios 7 whatsapp (8)

Tengo una vista web que se desplaza como se desea debajo de una barra de navegación.

Sin embargo, cuando cargo por primera vez el controlador, la página cargada en la vista web se desplaza para que se alinee con la parte superior de la barra de navegación. Cuando me desplazo por la vista web, la inserción correcta está presente en la parte superior para sentarse correctamente, es solo la posición inicial que es incorrecta.

¿Cómo puedo conseguir que la posición inicial se desplace completamente hacia la parte superior, incluido el recuadro?


La forma en que resolví este problema es con la devolución de llamada del delegado webViewDidFinishLoad. En el método de devolución de llamada para la vista web, me puse a hacer todo el trabajo para que la vista de desplazamiento de la vista web se vea correcta.

[webView.scrollView setContentInset:UIEdgeInsetsMake(64, 0, 0, 0)]; [webView.scrollView setScrollIndicatorInsets:UIEdgeInsetsMake(64, 0, 0, 0)]; [webView.scrollView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];


La respuesta de Rick es correcta, excepto que el valor superior debería ser negativo, ¡esto es lo que funcionó para mí!

[self.webView.scrollView setContentInset:UIEdgeInsetsMake(-44, 0, 0, 0)]; [self.webView.scrollView setScrollIndicatorInsets:UIEdgeInsetsMake(-44, 0, 0, 0)]; [self.webView.scrollView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];

Usé -44, si no tienes la barra de estado en la parte superior deberías usar -64.


Mi solución:

- (void)loadView { ... _offsetSet = NO; } - (void) viewDidLayoutSubviews { if (!_offsetSet) { [_webView.scrollView setContentOffset:CGPointMake(0, -self.topLayoutGuide.length) animated:NO]; } } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; _offsetSet = YES; }


Para obtener una versión más general de la respuesta de @ Puran, en lugar del cableado 44 o 64, obténgalo de la guía de puntos principales. Además, si carga varias veces, solo necesita cambiar estos valores una vez:

UIEdgeInsets insets = self.myWebView.scrollView.contentInset; if ( UIEdgeInsetsEqualToEdgeInsets(insets, UIEdgeInsetsZero)) { insets.top = -self.topLayoutGuide.length; [self.myWebView.scrollView setContentInset:insets]; [self.myWebView.scrollView setScrollIndicatorInsets:insets]; [self.myWebView.scrollView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO]; }


Si no le importa tener una barra de navegación opaca, entonces la solución más sencilla podría ser hacer esto en el controlador de vista que contiene su vista web:

self.navigationController.navigationBar.translucent = NO;

La posición del marco adoptará el mismo comportamiento que iOS6, ¡mágicamente!


También puede configurar el desplazamiento de contenido de la vista de desplazamiento de la vista web en viewDidAppear: por ejemplo:

[self.webView.scrollView setContentOffset:CGPointMake(0, -64) animated:NO];

Desafortunadamente, no tiene ningún efecto si se coloca en viewWillAppear: entonces, cuando aparezca la vista, verá un salto visible en el contenido a medida que se desplaza desde debajo de la barra de navegación a su nueva ubicación.


Tuve el mismo problema y lo arreglé. La solución es bastante simple:

Vaya al guión gráfico, seleccione el controlador de vista que contiene su UIWebView y abra el inspector de atributos. Aquí, verá el título "Extender bordes", simplemente desmarque la casilla "Debajo de las barras superiores" y ¡trabajaré!

Espero que esto ayude !


usa el siguiente

CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame]; CGFloat navHeight = self.navigationController.navigationBar.frame.size.height; applicationFrame.origin.y = navHeight + 4; webView = [[UIWebView alloc] initWithFrame:applicationFrame];