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

143

Antes de actualizar a, Xcode 8no he visto este error en tal caso. Tengo diferentes controladores de navegación. Para todos ellos veo un error 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 barexiste para subvistas. De todos modos, podría resolverlo marcando y desmarcando la casilla Shows navigation barde verificación Attributes inspector. Pero desafortunadamente cada vez que vuelvo a abrir, Main.storyboardesta advertencia aparece nuevamente. Además, si hago clic en el triángulo amarillo y luego en los marcos de actualización, no pasa nada.

ingrese la descripción de la imagen aquí

Danny
fuente
1
Mismo problema aquí confirmado. Ninguna de las resoluciones sugeridas soluciona el problema.
GregP
@GregP, por favor verifique mi solución y responda
KSR
@Ashish Kakkad, compruebe mi solución y responda
KSR
Rdar archivado: // 28844288. Siéntase libre de engañar openradar.me/radar?id=4985464104681472
Guillaume Algis
Esta es mi última advertencia que me está molestando después de actualizar mi proyecto.
Sethmr

Respuestas:

154

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

Kai
fuente
37
Esto no resuelve el problema. Cierre Xcode y abra nuevamente el problema vendrá nuevamente.
Ashish Kakkad
2
Esto me está molestando muchísimo ... Acabo de intentar esto, y esto elimina la advertencia temporalmente . Siempre puede cambiar el Tamaño simulado de un lado a otro para eliminar la advertencia cuando vuelva. Súper. Molesto.
nekonari
55
Solo una solución temporal: esta no es la respuesta.
emem
55
Cambie este Tamaño simulado (y vuelva a 'Inferido' o lo que sea) o "alternar entre activar / desactivar Ajustar vistas de desplazamiento" . Ambos harán que Storyboard elimine su misplaced="YES". Este es un error de Xcode, y esta solución es un tipo de actualización forzada. Tomado de la respuesta @buildsucceeded.
bauerMusic
1
@MobileBloke Por forzar actualización quise decir que hará que la vista de Storyboard reescriba (actualice) los parámetros, reevalúe y elimine la advertencia. Es realmente una actualización, la fuerza solo significaba que no lo hacía automáticamente por sí mismo (como debería) y que necesitaba un cambio arbitrario manual.
bauerMusic
35

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

buildsucceeded
fuente
44
Wow, y (marcando git), literalmente, todo lo que sucede cuando haces esto es que misplaced="YES"se elimina. : /
buildsucceeded
77
Eso lo arregla hasta la próxima vez que cierre y vuelva a abrir el proyecto. No es una solución completa.
Casey Wagner
15

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.

negersiu
fuente
2
Esto funcionó por un corto tiempo, luego después de que Xcode lo procesó nuevamente, sucedió lo mismo y volvió a ocurrir la advertencia. ¿Sigue funcionando para ti en el último Xcode?
UKDataGeek
12

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

ingrese la descripción de la imagen aquí

  1. Seleccionar controlador de navegación

ingrese la descripción de la imagen aquí

  1. Ir a Mostrar el inspector de tamaño

ingrese la descripción de la imagen aquí

  1. Cambiar tamaño simulado a forma libre

ingrese la descripción de la imagen aquí

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

ingrese la descripción de la imagen aquí

  1. Entonces las advertencias desaparecen.

ingrese la descripción de la imagen aquí

guoc
fuente
¿Alguna idea de por qué esto habría funcionado y no el botón "Actualizar marcos"?
Manganese
@ Guoc, hermano, ¿podrías ayudarme, por favor stackoverflow.com/questions/46375778/… ?
May Phyu
7

Como solución alternativa solo para deshacerme de la molesta advertencia, 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 :)

Jensie
fuente
¿Tendré que agregar esto más tarde? Realmente no me importa cómo se ve mi controlador de navegación siempre que no tenga advertencias. Es algo gracioso El guión gráfico reconoce la advertencia por una fracción de segundo y luego desaparece cuando ingresa al guión gráfico de esta manera.
Sethmr
Hice lo mismo y luego no vuelvo a tocar el guión gráfico. Todo funciona bien
Zhao
El problema es que cuando vuelve a cargar, vuelve ... ¿alguien más se da cuenta de que lleva mucho tiempo cargar el guión gráfico con la ruleta en funcionamiento cuando se produce este error?
UKDataGeek
6

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í.

colby
fuente
1
también es temporal para arreglarlo por mí
zero3nna
3

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.

nekonari
fuente
ESTOY USANDO SE .. pero aún Advertencia
Abdul Waheed
1
Si lo se. Pero desaparecen cada vez que cambias esa selección a otra cosa. Hoy en día, comienzo con 7, cambio a SE, luego vuelvo a 7 para borrar estas advertencias. O simplemente déjelos, y simplemente no verifique las misplacedpropiedades al confirmar los cambios.
nekonari
3

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: 31355220para que Apple pueda vincularlo. Cuantas más personas lo denuncien, más información tendrán para solucionar esta molestia.

UKDataGeek
fuente
2

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.

templeman15
fuente
Solo necesita configurarlo solo en los controladores de vista que no tienen padres (controlador de vista raíz + quizás más, dependiendo de lo que tenga en su guión gráfico)
thetrutz
1

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.

ingrese la descripción de la imagen aquí

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) y luego habrá opciones para corregir / ajustar automáticamente los problemas.

ingrese la descripción de la imagen aquí

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

usuario2027373
fuente
44
No funciona en esta situación. Los campos X / Y / Ancho / Altura para la barra de navegación están en gris / no editables.
Slipp D. Thompson
@ Ian Hmmm ... Creo que terminé editando el xib para que los números coincidieran.
Slipp D. Thompson
1

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':

ingrese la descripción de la imagen aquí

Radu Ursache
fuente
0

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 vuelva a hacer clic 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 creador de interfaces se atascó como a veces se produce.

GregP
fuente
3
Después de la reapertura de XCode, esta advertencia en realidad desaparece, pero si abro algún archivo en el proyecto y vuelvo a abrir, main.storyboardestas advertencias aparecen nuevamente
Danny
0

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.

Aks
fuente