ios - developer - publicar app store
Vistas extraviadas cada vez que Xcode se reinicia (11)
-
haga clic para obtener una vista previa de un archivo normal (no archivo
.xib
o.storyboard
) - salir de Xcode
-
ejecuta
git checkout .
- reiniciar Xcode
el archivo
.storyboard
no se modifica ahora.
Estoy usando guiones gráficos por primera vez en mi aplicación
Cuando cierro Xcode, tengo 0 advertencias sobre vistas extraviadas o cualquier cosa relacionada con mi guión gráfico. Cuando reinicio Xcode y abro el guión gráfico, 3 de mis 15 escenas han perdido las advertencias de visualización.
Sin tocar nada (aparte de seleccionar el archivo), puedo emitir un
git status
y ver que el archivo .storyboard tiene cambios.
Si
git diff
, veo esto incluido en varias áreas del archivo:
<variation key="widthClass=compact" misplaced="YES">
<rect key="frame" x="8" y="56" width="130" height="34"/>
</variation>
Si un elemento ya tenía un
<variation key="widthClass=Compact"
nodo, entonces se agregan el atributo
misplaced
y el nodo
rect
.
Lo único que tengo que hacer para que desaparezcan las advertencias es hacer clic en cada una, asegurarme de que esté seleccionada la opción "Actualizar marco" y hacer clic en "Solucionar el error". Eso arregla todo hasta que reinicie Xcode.
La estructura básica de mi escena es:
UIView
UICollectionView
UICollectionReusableView
UICollectionViewCell
UICollectionViewCell
UISegmentedControl
¿Cómo puedo evitar que esto suceda cada vez que reinicio?
En la parte inferior del guión gráfico tenemos la opción de seleccionar la clase de tamaño. Si cambio la opción de wRegular hRegular a cualquier otra opción, aparece el problema similar. No sé la razón de esto.
Intente resolverlo seleccionando la misma clase de tamaño después de abrir el proyecto que seleccionó antes de cerrar el proyecto.
Por ejemplo, si ha seleccionado la clase de tamaño como wCompact hRegular para iPhone y ha cerrado su proyecto. Después de abrir el proyecto nuevamente, verá que la clase de tamaño ha cambiado a wRegular hRegular. Debido a esto, los objetos de vista cambian. Seleccione wCompact hRegular nuevamente para resolver el problema.
Espero que ayude.
En mi caso, sucede con todas las etiquetas / botones con fuentes personalizadas y tamaños intrínsecos (no definidos explícitamente). Parece un error de Xcode.
Este problema se produce cuando agrega restricciones que no se ajustan al tamaño real de la pantalla en tiempo de ejecución. por ejemplo: si tiene un UIButton con un ancho que excede el ancho de la pantalla (digamos ancho 600) y agrega una restricción de ancho fija a ese UIButton pero sin restricciones iniciales o finales, Xcode no le dará advertencias ya que no hay conflictos, pero cuando realmente ejecute la aplicación en un dispositivo o simulador con un ancho de pantalla inferior a 600, Xcode ajustará automáticamente el ancho del botón UIB para que se ajuste al ancho de la pantalla que sea inferior a 600, haciendo que las restricciones de diseño cambien a lo que se ajustaba a la pantalla en tiempo de ejecución
Esto generalmente ocurre cuando no ha establecido las restricciones correctamente.
Intente eliminar todas las vistas dentro del UIViewController y agregue nuevamente nuevamente junto con sus restricciones.
Limpia y ejecuta tu código.
Me enfrento al mismo problema antes, y supongo que no es nuestra culpa, es solo un error de Xcode.
Si su archivo
.storyboard
cambió pero no tocó nada, simplemente seleccione el archivo y seleccione el menú Xcode
Source Control
->
Discard Changes in "xxxx.storyboard"...
, debería funcionar :)
Primero verifique que haya implementado todas las restricciones. Si todas las restricciones son correctas, elimine la restricción relacionada y refute nuevamente.
Si está utilizando clases de tamaño, entonces sus restricciones no están a la altura (de acuerdo con todo tipo de dispositivo si es Any-Any). De lo contrario, intente ajustar el marco o las restricciones y verifique nuevamente.
El diseño automático también puede causar este problema. Obtendrá toda la información sobre la advertencia una vez que haga clic en ellos.
Solía enfrentar el mismo problema con mi aplicación anterior. Lo que noté es que el tamaño de los guiones gráficos es importante aquí.
Este es un problema de Xcode.
Si usamos storyboard de cualquier ancho y altura , este problema no se produce. Si está utilizando guiones gráficos de tamaño Ancho compacto altura normal , se produce este problema.
Por lo tanto, intente usar los tamaños de guión predeterminados en Xcode
Una posible razón para las vistas extraviadas es: si ha usado vistas en vivo (IBDesignables) en guiones gráficos, entonces si abre el guión gráfico y se mueve rápidamente a otro archivo antes de que el IB haya terminado de construir todas las vistas en vivo, las vistas se extravían. El IB comienza a construir las vistas en vivo tan pronto como veas el guión gráfico en el editor. Para corregir las vistas extraviadas, permita que IB tenga tiempo para terminar de construir el guión gráfico permaneciendo en el guión gráfico por unos momentos, y las vistas extraviadas se corregirán.
Una solución simple puede ser simplemente permitir que Xcode elija restricciones para usted, luego regrese y verifique qué ha elegido para asegurarse de que funcionará para usted.
En storyboard:
- Seleccione View Controller dándole problemas
- Resolver problemas de diseño automático (abajo a la derecha)
- Vistas seleccionadas: restablecer las restricciones sugeridas
Para verificar qué restricciones se han restablecido:
- Seleccione cada vista dentro del controlador
- Inspector de restricciones (arriba a la derecha)
- desplazarse hacia abajo y examinar las restricciones