Abrí un proyecto iOS existente con Xcode6 beta6, y Xcode enumera la siguiente advertencia para los archivos Storyboard y Xib:
El ancho de diseño máximo preferido automático no está disponible en versiones de iOS anteriores a 8.0
Intenté abordar la advertencia estableciendo el ancho como explícito como a continuación:
Sin embargo, esto no resolvió las advertencias. ¿Cómo se pueden eliminar?
ios
autolayout
ios8
xcode6
mononucleosis infecciosa
fuente
fuente
Respuestas:
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:
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:
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:
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"
fuente
<label(?!.*preferredMaxLayoutWidth)
para encontrar etiquetas que omitan unpreferredMaxLayoutWidth
atributo / valor. Si agrega enpreferredMaxLayoutWidth="0"
tales líneas, es lo mismo que marcar explícitamente y establecer el valor0
.numberOfLines
se establece en cualquier cosa menos 1, la advertencia sucederá independientemente de si se hapreferredMaxLayoutWidth
configurado o no.preferredMaxLayoutWidth
0 explícito, la advertencia desaparece independientemente delnumberOfLines
valor. ¿Pero tal vez esto se solucionó en la actualización de Xcode esta mañana?Para encontrar la (s) etiqueta (s) del problema en un guión gráfico grande, siga mis pasos a continuación.
A continuación, revele su guión gráfico como archivo fuente.
Buscar. Debería poder saber qué etiqueta es desde aquí con bastante facilidad mirando el contenido.
Una vez que encuentre la etiqueta, la solución que funcionó para mí fue establecer el "ancho preferido" en 0.
Por cierto, siempre puede obtener rápidamente la identificación de un elemento de la interfaz seleccionando el elemento y mirando debajo del inspector de identificación. Muy útil.
fuente
Puede solucionar este problema sin abrir el guión gráfico como fuente . UILabels activa esta advertencia si numberOfLines! = 1 y el objetivo de implementación es <8.0
¿CÓMO ENCONTRARLO?
fuente
La solución es bastante simple
Solo habilita Builds para iOS 8 y versiones posteriores
fuente
Ahora mi versión de Xcode es 6.1. Pero también recibí esta advertencia. me molesta mucho después de buscar una y otra vez. Encontré la solución.
Motivo: debe haber configurado sus Líneas UILabel> 1 en su Guión gráfico.
Solución: establezca su atributo UILabel Lines en 1 en Storyboard. reinicia tu Xcode. Funciona para mí, espero que pueda ayudar a más personas.
Si realmente necesita mostrar sus palabras más de 1 línea. deberías hacerlo en el código.
fuente
Para resumir, para mí, siguiendo las dos instrucciones anteriores para cambiar cualquier instancia en la que numberOfLines = 0 a 1 o superior, y agregar manualmente PreferMaxLayoutWidth = "0" a cada instancia de una etiqueta dentro de la fuente del guión gráfico solucionó todas mis advertencias.
fuente
Como no tengo 50 reputación, Stackoverflow no me deja comentar sobre la segunda mejor respuesta. Encontré otro truco para encontrar la etiqueta del culpable en el Storyboard.
Entonces, una vez que conozca la identificación de la etiqueta, abra su guión gráfico en una pestaña separada con los controladores de vista mostrados y simplemente ejecute el comando F y el comando V y lo llevará directamente a esa etiqueta :)
fuente
Lo hice funcionar seleccionando el diseño original que tenía en la selección W / H. Storyboard funciona como se esperaba y el error desapareció.
También asegúrese de estar desarrollando para iOS 8.0. Verifique eso desde la configuración general del proyecto.
Aquí es donde debes presionar.
fuente
Tuve este problema y pude solucionarlo agregando restricciones para determinar el máximo con una etiqueta.
Al colocar una etiqueta multilínea no hay ninguna restricción establecida para imponer el ancho dentro de la vista principal. Aquí es donde entra en juego el nuevo PreferredMaxWidth. En iOS 7 y versiones anteriores, debe definir el ancho máximo usted mismo. Simplemente agregué una restricción de 10px al lado izquierdo y derecho de la etiqueta.
También puede agregar una restricción de ancho <= que también soluciona el problema.
Entonces, esto no es realmente un error, simplemente debe definir el ancho máximo usted mismo. La opción explícita mencionada en otra respuesta también funcionará ya que está configurando este valor de ancho, sin embargo, tendrá que modificar este valor si desea que el ancho máximo cambie en función del ancho principal (ya que ha establecido explícitamente el ancho).
Mi solución anterior garantiza que el ancho siempre se mantenga sin importar cuán grande sea la vista principal.
fuente
Por alguna razón, incluso si cambia el Objetivo de implementación de iOS a 8.0 o superior, los archivos Xib no adoptan ese cambio y permanecen con la configuración anterior en el inspector de archivos
Por lo tanto, debe cambiarlo manualmente para cada Xib
Una vez hecho esto, la advertencia desaparecerá :-)
fuente