new ios xcode cocoa-touch storyboard xcode6

ios - new - Advertencia de Xcode Storyboard: Restricción de elementos de referencia desactivados en la configuración actual. Desactiva esta restricción en la configuración actual



xcode design (13)

Esta advertencia ocurre en Xcode 6.1. ¿Alguien tiene ideas sobre qué significa esta advertencia y qué sucederá con ella? ¡Muchas gracias!

A continuación se muestra una captura de pantalla con las advertencias abiertas en el código fuente "

¿Cómo encontrar qué restricción causa la advertencia? Xcode no le dice qué restricción es el problema.


Como se mencionó y bien guiado en la respuesta de @ BadCat , seguí los pasos y ¡solo un paso más me atreví a dar!

Pasos a seguir después del último paso de la respuesta de BadCats:

Paso 1:

Seleccioné la restricción en el Creador de interfaces y luego tuve en cuenta para qué sirve y luego la eliminé.

Paso 2

Cree el Proyecto XCode y le mostrará que puede aumentar el número de Advertencias. Esto se debe a que ha eliminado una restricción que necesita compilar bien. ¡Entonces, vaya al 3er paso!

Paso 3

Vuelva a agregar la restricción que tenía en mente (la que eliminó). ¡Y luego reconstruirlo de nuevo!

¡Para mí las advertencias desaparecieron simplemente haciendo esto! ¡Supongo que esto funcionará para algunas personas!

Porque:

Como pude entender el problema que causó esta advertencia fue que tenía una etiqueta conectada a un IBOutlet, pero su nombre comenzaba con una letra mayúscula. Así que le cambié el nombre con una simple letra en el ViewController y vine a cambiarlo en el IB. Eliminé IBOutlet pasado y fui a conectarlo al nombre de propiedad recién renombrado y me conecté. Entonces noté que hay una nueva advertencia.

Primero probé la siguiente answer también en este hilo, ¡pero no me ayudó!

¡Salud!


Elimino todos esos elementos de la interfaz de usuario, incluidas sus restricciones, y los agrego de nuevo, esas advertencias simplemente desaparecen. De todos modos, esta es una forma peor pero útil de resolver esto.


Esta advertencia puede ser molesta y ocurre a partir de Xcode 6.1.1. El problema principal es que no puede encontrar fácilmente la restricción referenciada haciendo clic en la advertencia. Supongo que esto es un error y se solucionará tarde o temprano.

Sin embargo, mientras tanto puedes usar esta pequeña solución:

Paso 1: Detecta advertencias molestas 😱

Paso 2: Haga clic derecho / Ctrl-clic en la advertencia, seleccione Reveal in Log 😨

Paso 3: admire la belleza del siguiente fragmento de registro:

... snip ... /Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:Dlb-cb-nWC: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration. /Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:6Ze-mO-v5N: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration. /Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:9av-xw-u1o: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration. /Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:RPt-Uf-vaZ: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration. /Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:Rnc-4M-7jV: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration. /Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:epJ-D9-KEF: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration. /Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:4HC-Gu-01w: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration. ... snip ...

Hmmm ... ¿Qué es esto ...?

Paso 4: Arrojemos eso a la barra de búsqueda del proyecto ... 😐

😮 Sí, lo has adivinado bien. Pinchalo.

Paso 5: 😁 ¡Dios mío! Disfruta de unos minutos adicionales de productividad hasta que Apple corrija este molesto error. 😎

Para 2016 ...

  • Si no puede obtenerlo con ''Revelar en el registro'', muestre el Navegador de informes. (Esa es la pestaña más a la derecha en la columna más a la izquierda.) Profundice en los resultados de construcción allí. Eso mostrará el registro de compilación, incluida la ID de restricción. buildsucceeded cortesía buildsucceeded

  • Tenga en cuenta que para Xcode de 5/2016, molestamente, tiene que salir y reiniciar Xcode para borrar esta advertencia en algunos casos.

  • Tenga en cuenta que, de manera confusa, el mismo error puede ser causado por un problema no relacionado (esto parece ser un error de Apple o un mal uso del lenguaje de error): si tiene elementos IBInspectable y los renombra en sus archivos Swift. Xcode no elimina el nombre antiguo UserDefinedRuntimeAttributes por usted. Simplemente haga clic en "Inspector de identidad" (elemento 3 en el panel derecho) y elimine los elementos defectuosos.

Para 2017 ...

  • Otra causa común, y de hecho más simple, del problema. Si por casualidad desinstaló un elemento: al momento de escribir, Xcode simplemente no sabe desinstalar automáticamente las restricciones que conducen a ese elemento . En pocas palabras, observe los elementos no instalados y, para todas sus limitaciones, márquelos como no instalados. (O simplemente, tal vez solo elimine temporalmente el elemento no instalado por completo, para ver si ese es el problema).

Esta solución me funciona.

Debido a que copié varios elementos del proyecto que desarrollé en Xcode 5 en Xcode 6, y el guión gráfico en Xcode 6 admite múltiples diseños, para cada restricción, necesito instalarlo en la configuración actual.

Por ejemplo, estoy usando "Ancho compacto | Altura normal", para la restricción que necesito establecer como a continuación:

Después de verificar y establecer todos los cientos de restricciones en mis proyectos, limpiar y construir, las advertencias finalmente desaparecen.


Este mensaje se activa cuando ha desactivado una vista en su guión gráfico, pero no desactivó las restricciones basadas en esa vista.

Por ejemplo, desactivó un botón, pero aún tiene algunas restricciones vinculadas a ese botón. Puede ser una restricción intrínseca como la altura o el ancho, o una restricción relativa como la distancia desde otra vista.

Debe desactivar cada una de las restricciones que hacen referencia a la vista, y debe hacerlo manualmente. Xcode está siendo demasiado conservador aquí y no lo hará por usted.


Lo que funcionó para mí (y no tengo idea de por qué) es desactivar "Usar variaciones de rasgos", luego realizar una limpieza y luego volver a activarlas. La siguiente versión no tenía advertencias.

Para desactivar "Usar variaciones de rasgos", simplemente seleccione su guión gráfico en el Navegador de proyectos y luego seleccione Inspector de archivos.

Luego, simplemente anule la selección de "Usar variaciones de rasgos", realice la limpieza presionando Shift-CMD K y luego vuelva a activar las variaciones de rasgos si desea usarlas.


Mi caso es elegir etiqueta, luego hacer clic en control + X, se desactivará, pero no hago nada con eso. Cuando construya, mostrará una advertencia. Solución: elimine la etiqueta o elimine el control elegido + X para la etiqueta.


Para mí, sucede si configuro un objeto una nueva restricción a objeto (no ver) con la opción "Restricción a márgenes" sin marcar. Problema resuelto marcando la opción (que es la predeterminada).


Pensé que era una restricción persistente debido a la otra respuesta, sin embargo, se debió a una "salida" que todavía tenía para un elemento que eliminé antes. Que hacer es:

  1. Seleccione su ViewController
  2. Haga clic en el ícono ''outlet'' en la esquina superior derecha
  3. Mire a través de sus puntos de venta y elimine cuidadosamente los que no necesita

En el peor de los casos, elimina todos los puntos de venta y simplemente vuelve a conectarlos. ¡Caso resuelto!


Solo quería agregar mi caso sobre cómo me ocurrió este error: en mi caso, quería eliminar un campo de texto con "Cmd + Retroceso". Hice esto directamente en la vista de árbol de Scene-Builder:

Puede ver que el campo de repetición está atenuado.

Entonces eso fue fácil de descubrir para mí. Puede simplemente eliminar realmente el campo seleccionando:

Editar-Eliminar desde el menú

Sorprendentemente, esto realmente elimina el campo (incluidas las restricciones). Tal vez esto ayude a alguien a encontrar fácilmente la causa de esta molesta advertencia ...


Tuve el problema en una vista de pila. Eliminar las restricciones y volver a agregarlas no ayudó. La limpieza y la reconstrucción no ayudaron.

Para mí, la solución fue crear un objeto de vista de pila completamente nuevo.

Luego mueva todos los elementos de la vista de pila anterior a la nueva vista de pila.

Eliminar la vista de pila anterior solucionó el problema.


Una de las razones por las que esto podría suceder es porque seleccionó una clase de tamaño que no es compatible con sus restricciones ( wAny hAny es un caso común). En tal caso, simplemente seleccione una clase de tamaño diferente en Interface Builder y ya está.


Explicación ampliada

No hay nada malo con las otras respuestas. Solo quería llamar la atención sobre la redacción de la advertencia original e identificar un par de casos de uso en los que esto puede aparecer en el flujo de trabajo.

Elementos de referencia de restricción desactivados en la configuración actual.

Esto significa que algún elemento (generalmente un control o vista personalizada que normalmente es visible) al que se hace referencia en una o más restricciones está desactivado (desactivado o la casilla de verificación "instalada" está desactivada). Si, por ejemplo, decide que desea mover un control o una vista en su guión gráfico fuera de la vista principal (o puede ver a veces al hacer algo interesante en las clases de tamaño), puede ver esta advertencia si el control tiene restricciones asociadas. .

Junto con la solución recomendada:

Desactive esta restricción en la configuración actual.

Dos enfoques para arreglar

Esquema del documento

Visualmente, puede abrir el Esquema del documento en su guión gráfico y buscar las Restricciones atenuadas que hacen referencia a su control / vista que se encuentra fuera de la vista principal (amplíe el contorno, haga clic en la restricción y vea el inspector de atributos, con el mouse hacia abajo para revisar rápidamente) . Luego, elimine la restricción de este contexto (clase de tamaño). Por ejemplo, en mi caso, solo mantengo el control hasta que decida más adelante dónde presentarlo, así que elegí eliminar por completo la restricción ofensiva hasta más tarde. Pero en una clase de tamaño, simplemente desinstalaría la restricción del contexto actual usando la casilla de verificación instalada en el inspector de atributos.

Navegador de registros / herramienta de búsqueda

También se puede seguir usando el Navegador de registros para encontrar el control del problema a través del identificador único dado a cada objeto en el guión gráfico. En el registro, sería justo antes del texto resaltado en amarillo y normalmente toma la forma que se ve en mi ejemplo anterior: jvj-mY-DHf

Usando el identificador, uno puede usar la herramienta de búsqueda en Xcode para localizar y eliminar (completamente) o desinstalar (para el contexto actual) la restricción ofensiva.

Si eres aficionado a Xml y su simplicidad, también puedes abrir Storyboard como código fuente y encontrar el identificador único ofensivo y eliminar el bloque apropiado de xml.