custom bar ios swift xcode uinavigationbar xcode8

ios - custom view navigation bar swift



El marco de advertencia para "Barra de navegación" será diferente en el tiempo de ejecución aparece en Xcode 8 Swift 3 (13)

Cambie la Vista previa de su dispositivo en xcode para Ver controlador y compile y verifique las advertencias ...

Xcode 8 tiene errores, el generador de interfaces lo restablece con un no aleatorio que afecta a todas las vistas contenidas. Intenta cambiar tu dispositivo de vista previa.

Antes de actualizar a Xcode 8 no he visto este error en tal caso. Tengo diferentes controladores de navegación. Para todos ellos veo un error El Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375 Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375 En realidad, estos Controladores de navegación no tienen Navigation bar Navigation bar . Existe Navigation bar para subvistas. De todos modos, podría resolverlo marcando y desmarcando la casilla Shows navigation bar en el Attributes inspector Pero desafortunadamente, cada vez que vuelvo a abrir Main.storyboard esta advertencia aparece nuevamente. Además, si hago clic en el triángulo amarillo y luego en los marcos de actualización, no sucede nada.


Como se mencionó here , puede solucionar esto activando / desactivando Ajustar inserciones de vista de desplazamiento.


Como solución alternativa solo para deshacerme de la advertencia molesta, he estado editando Main.storyboard manualmente eliminando ''fuera de lugar'' en:

<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">

Un truco, pero es bueno tener cero advertencias en lugar de 1 :)


De acuerdo, parece que he solucionado el problema. Esto es lo que hice.

Seleccione marcos de actualización como normal. Abra un archivo diferente y luego haga clic nuevamente en el archivo del guión gráfico. Si eso no funciona, reinicie Xcode. Parece que se estaba actualizando internamente, pero la interfaz de usuario del generador de interfaces estaba atascada, ya que a veces se bloquea.


Esto funcionó para mí en Xcode 8.3.1 Después de reiniciar Xcode, todavía funcionaría.

  1. Seleccionar controlador de navegación

  1. Ir a Mostrar el inspector de tamaño

  1. Cambiar tamaño simulado a forma libre

  1. Cambiar el tamaño simulado de nuevo a fijo

  1. Entonces las advertencias desaparecen.


Haga clic en "Ver como" en la parte inferior izquierda de su guión gráfico y elija un tamaño de dispositivo diferente, luego haga clic nuevamente y vuelva al tamaño del dispositivo con el que comenzó. Esto funcionó para mí.


Hasta que se repare Xcode 8, puede configurar la opción "Ver como:" en "iPhone SE" para eliminar la advertencia. No es ideal, pero funciona por ahora.


He cambiado de Ver como: iPhone 6S a iPhone 5S, luego volví a cambiar al iPhone 6S, y Xcode hizo todos los cambios para eliminar la advertencia.


Intenté todas las sugerencias anteriores pero no pareció funcionar. Creo que podría ser un error más grave.

He registrado un error con Apple Bug Reporter (enlace: https://bugreport.apple.com/logon ): si desea hacer lo mismo, haga referencia al error: 31355220 para que Apple pueda vincularlo. Cuantas más personas lo denuncien, más información tendrán para solucionar esta molestia.


La advertencia desaparecerá si cambia la propiedad "Tamaño simulado" a "Forma libre".


Pude deshacerme del problema por completo configurando el tamaño simulado del controlador de vista en forma libre y luego configurando el ancho de 375 a 320.


Tuve el mismo problema, esto es lo que hice para solucionarlo:

Expanda la información del error y haga clic en el detalle de advertencia. Xcode debería abrir automáticamente la configuración de dimensión / posición. Reemplace el valor actual con el valor sugerido en los detalles de advertencia.

Básicamente, asegúrese de que el tamaño en su tiempo de ejecución sea el mismo que ha especificado en el inspector de tamaño.

También puede hacer clic en el ícono al lado de la imagen que publicó (el triángulo amarillo con un círculo blanco. A veces, es un ícono de círculo rojo), entonces habrá opciones para corregir / ajustar automáticamente los problemas.

Elegí la opción de restricciones de actualización y luego ajusté las nuevas restricciones en consecuencia.


para mí, el problema era que estaba ocultando la barra inferior al presionar (usando la casilla de verificación IB).

Tuve que seleccionar ''ninguno'' en la opción ''barra inferior'':