Actualización 3:
esta advertencia también puede ser activada por etiquetas que se han numberOfLines
establecido en cualquier cosa menos 1 si su objetivo de implementación se establece en 7.1. Esto es completamente reproducible con el nuevo proyecto de vista única.
Pasos para reproducir:
- Cree un nuevo proyecto de vista única, objetivo-c
- Establezca el objetivo de implementación en 7.1
- Abra el guión gráfico del proyecto.
- Coloque una etiqueta en el controlador de vista proporcionado
- Establezca el número de líneas para esa etiqueta en 2.
- Compilar
He archivado el siguiente radar:
rdar: // problem / 18700567
Actualización 2:
Desafortunadamente, esto es algo nuevo en la versión de lanzamiento de Xcode 6. Tenga en cuenta que, en su mayor parte, puede editar manualmente su storyboard / xib para solucionar el problema. Por Charles A. en los comentarios a continuación:
Vale la pena mencionar que puede introducir esta advertencia por accidente de forma bastante fácil, y la advertencia en sí misma no ayuda a encontrar la etiqueta que es la culpable. Esto es lamentable en un guión gráfico complejo. Puede abrir el guión gráfico como un archivo fuente y buscar con la expresión regular <label(?!.*preferredMaxLayoutWidth)
para encontrar etiquetas que omitan un atributo / valor preferido de MaxLayoutWidth. Si agrega PreferredMaxLayoutWidth = "0" en dichas líneas, es lo mismo que marcar explícitamente y establecer el valor 0.
Actualización 1:
Este error ahora se ha corregido en Xcode 6 GM.
Respuesta original
Este es un error en Xcode6-Beta6 y XCode6-Beta7 y puede ignorarse de forma segura por ahora.
Un ingeniero de Apple en los foros de desarrolladores de Apple tenía esto que decir sobre el error:
El ancho de diseño máximo preferido es una propiedad de diseño automático en UILabel que le permite crecer automáticamente verticalmente para adaptarse a su contenido. Las versiones de Xcode anteriores a 6.0 establecerían PreferredMaxLayoutWidth para etiquetas multilínea al tamaño de los límites actuales en tiempo de diseño. Tendría que actualizar manualmente PreferredMaxLayoutWidth en tiempo de ejecución si su diseño horizontal cambiara.
iOS 8 agregó soporte para computar automáticamente el PreferredMaxLayoutWidth en tiempo de ejecución, lo que facilita aún más la creación de etiquetas multilínea. Esta configuración no es retrocompatible con iOS 7. Para admitir tanto iOS 7 como iOS 8, Xcode 6 le permite elegir "Automático" o "Explícito" para PreferredMaxLayoutWidth en el inspector de tamaño. Debieras:
Elija "Automático" si apunta a iOS 8 para obtener la mejor experiencia. Elija "Explícito" si apunta a <iOS 8. Luego, puede ingresar el valor de PreferMaxLayoutWidth que desea establecer. La activación de valores "explícitos" se ajusta al tamaño de los límites actuales en el momento en que marcó la casilla.
La advertencia aparecerá si (1) está usando el diseño automático, (2) "Automático" está configurado para una etiqueta multilínea [puede verificar esto en el inspector de tamaño de la etiqueta], y (3) su objetivo de implementación <iOS 8)
Parece que el error es que esta advertencia aparece para documentos que no son de auto-distribución. Si ve esta advertencia y no utiliza el diseño automático, puede ignorarla.
Alternativamente, puede solucionar el problema utilizando el inspector de archivos en el guión gráfico o xib en cuestión y cambiar "Compilaciones para" a "Compilaciones para iOS 8.0 y versiones posteriores"