que example app ios iphone layout uiwebview

ios - example - UIWebBrowserView no abarca todo UIWebView



wkwebview ios (2)

Este problema también ha resurgido con el iPhone X.

Con iOS 11, UIScrollView ahora tiene la propiedad contentInsetAdjustmentBehavior.

webview.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

puede corregir este problema

Así que he estado intentando que este comportamiento simple funcione en mi aplicación de iPhone ahora por un tiempo. Tengo una barra de navegación en la parte superior y una barra de pestañas en la parte inferior. Estoy cargando todo mi contenido en una vista web, que quiero encajar entre los dos. Ya publiqué sobre este tema dos veces,

ambos aquí: IOS View aún no se carga en la posición correcta

y aquí: Configuración programática de contenido para llenar la pantalla entre la barra de pestañas y el controlador de navegación

Actualmente, mi vista web se ve y funciona bien en iPhone 4 y 4s, el problema surge en los 5s. Cuando la pantalla termina de cargarse, se ve como la imagen aquí: http://grosh.co/screen.jpg . Esto ocurre tanto en el simulador como en los dispositivos.

Luego de una inspección adicional, descubrí que UIWebView de hecho se está expandiendo correctamente (las áreas grises que ves son vistas web). El contenido más pequeño es en realidad un UIWebBrowserView , que me resulta difícil encontrar información.

Tengo el código que estoy usando a continuación, así como una salida de registro para asegurar que todos los números sean correctos. Mis preguntas son,

1) ¿Hay una mejor manera de configurar la vista web para que abarque el área de la pantalla entre las barras superior e inferior de todos los dispositivos?

2) De lo contrario, ¿hay alguna manera de configurar el UIWebBrowser para abarcar toda la vista web?

Traté de iterar sobre las subvistas de la vista web como se describe aquí: http://normansoven.com/ios-webview/#.VHyOUr6Jnww pero el webBrowserView nunca se vio.

Teh Codez:

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. CGFloat viewheight = self.view.bounds.size.height; NSLog(@"Height1:%f",viewheight); CGRect screenRect = [[UIScreen mainScreen] bounds]; CGFloat viewheight2 = screenRect.size.height; NSLog(@"Height2:%f",viewheight2); CGFloat height = self.view.frame.size.height; NSLog(@"Height3:%f",height); CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height; NSLog(@"NAVHeight:%f",navBarHeight); CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height; NSLog(@"TABHeight:%f",tabBarHeight); CGFloat statusbarheight = [UIApplication sharedApplication].statusBarFrame.size.height; NSLog(@"StatbarHeight:%f",statusbarheight); CGFloat spaceToRemove = navBarHeight + tabBarHeight + statusbarheight; NSLog(@"NAVHeight+TABHeight:%f",spaceToRemove); CGFloat newHeight = viewheight - spaceToRemove; NSLog(@"NewHeight:%f",newHeight); CGRect frame = CGRectMake(0 , navBarHeight + statusbarheight, self.view.frame.size.width, newHeight); self.webView = [[UIWebView alloc]initWithFrame:frame]; //self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; [self.view addSubview:self.webView]; self.webView.scalesPageToFit = true; NSURL *url = [NSURL URLWithString:@"http://example.com/finnaRoot/index.php"]; NSURLRequest *requestURL = [NSURLRequest requestWithURL:url]; [self.webView loadRequest:requestURL]; self.webView.scrollView.showsVerticalScrollIndicator = false; self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]]; self.webView.delegate = self; self.tabBarController.delegate = self; self.webView.scrollView.delegate = self; }

Salida de registro, desde un iPhone 5s

2014-11-26 17:19:21.184 Finna[14617:1765689] Height1:568.000000 2014-11-26 17:19:21.185 Finna[14617:1765689] Height2:568.000000 2014-11-26 17:19:21.185 Finna[14617:1765689] Height3:568.000000 2014-11-26 17:19:21.185 Finna[14617:1765689] NAVHeight:44.000000 2014-11-26 17:19:21.185 Finna[14617:1765689] TABHeight:49.000000 2014-11-26 17:19:21.185 Finna[14617:1765689] StatbarHeight:20.000000 2014-11-26 17:19:21.185 Finna[14617:1765689] NAVHeight+TABHeight:113.000000 2014-11-26 17:19:21.186 Finna[14617:1765689] NewHeight:455.000000


Me he encontrado con el mismo problema. Y encontró solución simple. El culpable es la propiedad de UIViewController automaticallyAdjustsScrollViewInsets . UIViewController referencia de UIViewController dice:

El valor predeterminado es YES , que permite que el controlador de vista ajuste sus inserciones de vista de desplazamiento en respuesta a las áreas de pantalla consumidas por la barra de estado, la barra de navegación y la barra de herramientas o la barra de pestañas.

Significa que UIViewController agrega esa brecha superior a la vista de desplazamiento de UIWebView , incluso si configura correctamente el marco de vista web o agrega restricciones de autodiseño. Para superar este comportamiento solo

Establezca NO si desea administrar los ajustes de inserción de la vista de desplazamiento usted mismo, como cuando hay más de una vista de desplazamiento en la jerarquía de vista.

"administrar ajustes de inserción de vista de desplazamiento uno mismo" en nuestro contexto significa que no agregaremos ningún inserto;)

mismo problema con cualquier vista de desplazamiento, es decir, espacio en blanco en la parte superior de UITextView en iOS 10 https://.com/search?q=automaticallyAdjustsScrollViewInsets