Sé que la presencia del controlador de vista más (barra de navegación) empuja hacia abajo la UIView por su altura. También sé que esta altura = 44px. También descubrí que este empuje hacia abajo mantiene el [self.view].frame.origin.y = 0
.Obtener la altura de la barra de navegación mediante programación
Entonces, ¿cómo puedo determinar la altura de esta barra de navegación, que no sea simplemente establecerlo en una constante?
O, versión más corta, ¿cómo puedo determinar que mi UIView se muestre con la barra de navegación en la parte superior?
La bombilla de luz comenzó a encenderse. Lamentablemente, no he descubierto una forma uniforme de corregir el problema, como se describe a continuación.
Creo que todo mi problema se centra en mis AutenticarMáscaras. Y la razón por la que he llegado a la conclusión de que son los mismos síntomas existe, con o sin UIWebView. Y ese síntoma es que todo es color de rosa para Portrait. Para Landscape, el botón UIButton inferior aparece debajo de TabBar.
Por ejemplo, en un UIView, tengo, de arriba a abajo:
UIView - ambos muelles establecidos (caso por defecto) y no hay puntales
UIScrollView - Si fijo los dos muelles, y claro todo lo demás (como el UIView), entonces el UIButton se inmiscuye en el objeto inmediatamente encima de él. Si borro todo, entonces UIButton está bien, pero las cosas en la parte superior se esconden detrás de StatusBar. Configurando solo el puntal superior, UIButton aparece debajo de la barra de pestañas.
UILabel y UIImage próxima verticalmente - conjunto de puntal superior, flexible en todas partes
Sólo para completar el cuadro de los pocos que tienen un UIWebView:
UIWebView - Puntales: arriba, izquierda, derecha Springs tanto
UIButton - nada establecido, es decir, en todas partes flexibles
Aunque mi bombilla de luz es tenue, no parece haber esperanza.
Tenga paciencia porque necesitaba más espacio que el proporcionado por un breve comentario de respuesta.
Gracias por tratar de entender lo que realmente estoy pescando ... así que aquí va.
1) Cada UIViewController (una aplicación TabBar) tiene un UIImage, algo de texto y lo que sea en la parte superior. Otro denominador común es un UIButton en la parte inferior. En algunos UIViewControllers tengo un UIWebView arriba del UIButton.
Así, UIImage, texto, etc UIWebView (en algunos) UIButton
Alrededor de todo lo anterior es un UIScrollView.
2) Para aquellos que tienen un UIWebView, su autoresizingMask parece:
—
|
—
^
|
|
| - | ← ---- → | - | | | V máscara de la UIButton ha establecido, es decir, en todas partes flexibles
Dentro de mi -viewDidLoad nada, llamo a mi -repositionSubViews dentro del cual hago lo siguiente:
Si no hay UIWebView, no hago nada, excepto el centro el UIButton que coloqué con IB.
Si tengo un UIWebView, entonces determino su * content * Height y configuro su marco para encerrar todo el contenido.
UIScrollView *scrollViewInsideWebView = [[webView_ subviews] lastObject];
webViewContentHeight = scrollViewInsideWebView.contentSize.height;
[webView_ setFrame:CGRectMake(webViewOriginX, webViewOriginY,
sameWholeViewScrollerWidth, webViewContentHeight)]
Una vez hago eso, entonces yo empujo la programación UIButton abajo de modo que termina coloca por debajo de la UIWebView.
Todo funciona, hasta que lo gire de Vertical a Horizontal.
Llamo a mi -repositionSubViews dentro de mi -didRotateFromInterfaceOrientation.
¿Por qué la altura del contenido de mi UIWebView no cambia con la rotación ?.
De vertical a horizontal, el ancho del contenido debe expandirse y la altura del contenido debe reducirse. Hace visualmente como debería, pero no de acuerdo con mi NSLog.
De todos modos, con o sin UIWebView, el botón del que he hablado se mueve debajo de TabBar cuando está en modo Paisaje, pero no se desplazará hacia arriba para verse. Lo veo detrás de la TabBar cuando me desplazo "enérgicamente", pero luego "retrocede" detrás de la TabBar.
En pocas palabras, esta es la razón por la que he preguntado sobre la altura del TabBar y la Barra de navegación porque el TabBar se planta en la parte inferior de la UIView y la Barra de navegación empuja al UIView hacia abajo.
Ahora, voy a agregar un comentario o dos aquí porque no tendrían sentido antes.
Sin UIWebView, dejo todo tal como está visto por IB.
Con UIWebView, aumento el frame.height de UIWebView a su contentHeight y también ajusto hacia arriba la altura del UIScrollView circundante que rodea todas las sub-vistas.
Bueno, ya lo tienes.
Configure el puntal superior y configure los dos resortes de UIWebView - problema resuelto y gracias racimos. Como cuestión de hecho, mi único problema restante es diseñar esos gráficos malditos @ 2X, etc. Utilizo GraphicConverter de una manera muy simple y funciona muy bien para el diseño de la página web. Pero todas estas cosas de 30px, 57px: voy a entrar en un territorio desconocido para mí, al menos. –