para for developer desarrollador apple app ios interface-builder

for - Atributo Advertencia no disponible en versiones de iOS anteriores a 8.0



xcode ios 12 (5)

Como ya había creado las restricciones, la respuesta fue hacer clic en la restricción y luego mirar en la barra de Utilidades (a la derecha). Como se muestra en la imagen a continuación, haga clic en un elemento y luego asegúrese de que "relativo al margen" no esté marcado.

¿Qué está causando esta advertencia en el generador de interfaces?

Atributo Atributos de diseño no disponibles relativos al margen de diseño en versiones de iOS anteriores a 8.0.

Estoy usando el XCode 6 Beta. Las advertencias apuntan a líneas en la fuente xml que no conciernen a los atributos.


Cuando agrega restricciones en Xcode 6, tiene la opción "Restringir a los márgenes" que crea una restricción diferente y no se puede leer, por ejemplo, en Xcode 5. Cree las restricciones sin estas opciones y las advertencias deberían desaparecer. Estas restricciones estarán disponibles en iOS 8.

Si ya ha creado las restricciones, podemos cambiarlo haciendo clic en la restricción y editándola. Al seleccionar el segundo elemento, puede desmarcar la opción "Relativo al margen" (como se explica en la respuesta GLee).


En mi caso, tuve que desmarcar "Usar diseño automático" de mi guión gráfico en el Inspector de archivos, y rehacer todas las restricciones en mi aplicación, a la manera antigua con ese rectángulo rojo que se encoge / agranda.

Las clases de tamaño ya estaban deshabilitadas y el objetivo es IOS 7.1.

Pero piense bien si tiene demasiados controladores de visualización y ya ha realizado todas sus restricciones. Cuando desactivas el diseño automático, Xcode borra todas las restricciones automáticas y vuelve al modelo anterior. Entonces tienes que hacer todo el trabajo otra vez.

Esta fue la única forma de deshacerme de esa advertencia de atributo no disponible.


Según Gasper Kolenc, abrir el guión gráfico como código fuente es muy útil. Aquí hay un poco más de información de mi experiencia solucionando este problema:

  1. En el código fuente del guión gráfico, busque "margen". Verá una línea como esta.

    restricto firstAttribute = "trailingMargin" secondItem = "Pgb-8w-IHT" secondAttribute = "trailing" constant = "8" id = "nKP-uZ-7Xm" /

  2. Encuentre el id de uno de los atributos (Pgb-8w-IHT en el ejemplo anterior).

  3. Desplácese hacia arriba para encontrar a qué objeto pertenece esta restricción. Algo como:

    tableViewCell contentMode = "scaleToFill" selectionStyle = "default"

  4. Vuelva a la vista del guión gráfico y muestre la ventana del inspector de identidad.

  5. Busque en las subvistas del objeto que encontró anteriormente para encontrar el id (Pgb-8w-IHT) en el inspector de identidad.

  6. Una vez encontrado, inspeccione las restricciones para encontrar la que se debe eliminar y volver a crear sin la opción de restricción de márgenes seleccionada (use la constante = "" como sugerencia ".


Si no puedes encontrar de dónde viene la advertencia, puedes usar este grep para encontrarlo.

Ejecuta esto en Terminal en tu directorio de proyectos:

grep -C 6 -nr Margin .

El 6 dice cuántas líneas de contexto se deben mostrar antes y después del partido.