Xcode 9 – "Restricciones de ancho fijo pueden provocar recortes" y otras advertencias de localización

Descargué el nuevo Xcode y en Interface Builder estoy teniendo muchos problemas con advertencias que dicen cosas como:

Las restricciones de ancho fijo pueden causar recorte

Se parece a esto:

introduzca la descripción de la imagen aquí

Tengo localización para varios idiomas y entiendo la advertencia de que en otro idioma el tamaño de una label puede cambiar, pero mi aplicación no tiene este problema. Lo ejecuté y lo probé en Xcode 8 ayer, estaba bien. No quiero pasar horas y horas añadiendo nuevas limitaciones inútiles.

¿Alguna solución sugerida?

Estaba recibiendo las mismas advertencias incluso sin varios idiomas en mi aplicación , lo que me llevó a descubrir qué estaba sucediendo realmente. . .

Aquí hay algunas cosas diferentes. Pude silenciar las advertencias de ancho fijo en mi propia aplicación al cambiar el ancho de los espaciamientos de object de ancho fijo a mayor o igual o menor o igual .

Esto se puede hacer seleccionando el object en el generador de interfaces, yendo al inspector de tamaño y cambiándolo allí:

introduzca la descripción de la imagen aquí


O bien, select la restricción del esquema del documento, vaya al inspector de tamaño y cambie allí:

introduzca la descripción de la imagen aquí



En cuanto a la advertencia en la parte superior de su captura de pantalla:

Las restricciones principales y finales con una restricción de centro pueden provocar el recorte.

Aquí hay una captura de pantalla de mi propia aplicación en la que recibía la misma advertencia:

introduzca la descripción de la imagen aquí

Tenía la label con el signo @ en la position inicial y posterior a los botones, pero también para alinear el centro con la label de sorting . Una vez que eliminé la restricción de alignment central , la advertencia desapareció, pero me quedé con un set de objects mal colocados.

Es entonces cuando me resigné a abrazar el Stack View . Tan molesto como es su uso, cuando obtiene todas las restricciones y ajustes correctos, se presenta de forma bella y sin advertencias.


Editar

Como Repose escribe en los comentarios, a veces simplemente agregar> = 0 será lo que necesita, ya que se está asegurando de que dos elementos no se superpongan.

Para tags y botones localizados, esta advertencia tiene sentido y debe proporcionar las restricciones necesarias para que sus tags no se superpongan. Si no se superponen ahora podrían hacerlo en el futuro, por lo que no hará daño proporcionar las restricciones.

Xcode te ayuda a agregar estas restricciones automáticamente:

En el esquema del documento de su guión gráfico, click la flecha amarilla y elija "encabezado fijo" o "arrastre fijo", dependiendo de dónde esté el text en su pantalla (izquierda o derecha). Esto lo solucionará para la mayoría de los problemas.

Imagen

Si tiene este problema con un button sin text (solo image), intente eliminar el "título pnetworkingeterminado" que aún podría configurarse para el button:

Imagen

Puede intentar Deshabilitar "Respeto de la dirección del idioma" según la restricción para silenciar la advertencia y ver si ayuda. Seleccione su restricción y abra Atributos / Tamaño Inspector. Vea la image adjunta.

Falta de respeto a la dirección del idioma

Con las Labels , puede establecer Lines es 0 y Autoshrink properties de Autoshrink es Minimum Font Size para eliminar las Fixed Width Constraints May Cause Clipping advertencias de Fixed Width Constraints May Cause Clipping , como esta:

introduzca la descripción de la imagen aquí