Problemas de diseño después de actualizar a Xcode 8

Aquí hay un antes y un después de una de mis pantallas después de actualizar a Xcode 8.
Todo lo que hice fue abrir mi main.storyboard y desde allí, construí y ejecuté mi aplicación en mi teléfono.
En mi control de versión, puedo ver que Xcode está haciendo muchos cambios en mi main.storyboard solo desde que lo abro.
Cada vez que elimino esos cambios, puedo ver lo que uso para ver en Xcode 7.3.1.
Pero, tan pronto como vuelva a abrir el constructor de interfaces con mi guión gráfico, veo que esos cambios vuelven a su lugar.

¿Hay algo que pueda hacer aquí?

Antes de Xcode 8

enter image description here

Después de actualizar a Xcode 8

enter image description here

Tuve un problema similar con las imágenes de tablas que no aparecían una vez que convertí el archivo del guión gráfico para que fuera compatible con Xcode8. Esto se ve como un error con Xcode8, por lo que hasta que se solucione un error, aquí hay una solución alternativa:

  1. Abra su guión gráfico en Xcode 8 y elija una vista inicial del dispositivo. Haga los cambios como lo haría normalmente.
  2. Una vez que haya completado sus cambios, seleccione el guión gráfico -> Inspector de archivos -> Se abre en -> Seleccione ‘Xcode 7.x’.

enter image description here

  1. Seleccione ‘Guardar y cerrar’ cuando se le solicite
  2. Los cambios en el guión gráfico se guardarán y su guión gráfico funcionará como lo hizo antes de Xcode8.

Cuando necesite hacer otros cambios en el archivo del guión gráfico, siga estos pasos nuevamente.

XIB o Storyboard se establece de manera predeterminada como la versión anterior 7.xy Save and Close. Solución temporal, pero funciona. No vuelva a abrir una vez que haya hecho Guardar y Cerrar. De lo contrario, otra vez necesita seguir los mismos pasos desde el comienzo. enter image description here

Eh el mismo problema. Logré solucionarlo parcialmente de la siguiente manera ( para Xcode versión 8.1 (8B62) )

En el esquema del documento de Storyboard, hice clic en cada escena que tenía la flecha amarilla que indicaba algunos problemas de diseño (número 1 en la captura de pantalla)

Después de esto, para cada escena problemática, tuve que hacer clic en el ícono pequeño “Actualizar marcos” (número 2 en la captura de pantalla) que solucionó todos los problemas de diseño por escena.

enter image description here

Sin embargo, una escena en mi caso todavía estaba en estado de llanto después de la transición de Xcode7 a Xcode8. Tuve que arreglarlo manualmente ajustando restricciones o agregando restricciones faltantes.

Uf, no es una sorpresa agradable de XCode8 y Storyboards. Si usó el editor de AppCode, no tendrá ese problema, ya que no es compatible con Storyboards; P

¡Buena suerte!

Xcode 8.1 Beta 2 resuelve este problema. Por favor revisa este enlace de descarga

https://developer.apple.com/download/

Siga los hilos para encontrar una solución posible: (creo que les sucede a muchos desarrolladores).
Xcode 8 GM seed Storyboard issue
Xcode 8: los guiones gráficos anteriores se distorsionan

(Utilicé anyH anyW width 600) Cuando Xcode se actualizó a Xcode 8, cambió todo mi tamaño de ViewControllers. Como resultado, todo el diseño estaba distorsionado.
Actualmente veo solo 3 soluciones para el problema (no confiaría en esperar una solución pronto).

1. Acceda a cada ViewController y fíjelo mediante Update Frames .

2. Diríjase al Size Inspector -> Freeform -> 600 ViewController principal Size Inspector -> Freeform -> 600 ya que se infiere que la mayoría de los controladores cambiarán el tamaño de todos ellos (tenga cuidado con el impacto de las nuevas características que Apple desea introducir).

3. Describa los cambios en git para el guión gráfico (no lo sugiero porque Apple también insertó algunas actualizaciones que pueden ser importantes para Xcode).

Enlace adicional para las nuevas características de AutoLayout en Xcode 8 (WWDC16): Hacer aplicaciones adaptativas, Parte 1

En mi caso, las soluciones de trabajo sugeridas por Akhil Kateja y yo también necesitamos restablecer el ancho y el alto de la vista principal:

1) Establecer el tamaño de la vista en forma gratuita

enter image description here

2) Restablezca el ancho y el alto de la vista al tamaño original:

enter image description here

Finalmente, salva y listo.

Establecer el tamaño de la vista en Freeform from Inferred funcionó para mí. Se puede encontrar bajo el título Métricas simuladas en el Inspector de atributos .

Tuve el mismo problema y lo resolví a la fuerza actualizando las restricciones de vista del controlador. Coloque el siguiente código en su función viewDidLoad ()

 self.view.layoutIfNeeded() 

Seleccioné cada controlador y hice clic en “Actualizar marcos” y se corrigió el diseño.

La respuesta de @ david-truong ( https://stackoverflow.com/a/39589860/1407528 ) no funciona en mi caso, así que si estás en mi misma situación, prueba esto:

En el caso de que tenga todos sus dispositivos actualizados en iOS 10+, esta versión de Xcode no reconocerá esos dispositivos como dispositivos compatibles. Entonces, intenta con este truco:

  • Vaya a: /Aplicaciones/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • Copie las carpetas relacionadas con iOS 10 o 10.1 a: / Aplicaciones / Xcode 7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • Abra el proyecto con Xcode 7.3.1 (reinicie Xcode si ya lo tiene abierto)
  • Seleccione su dispositivo iOS 10+ conectado
  • Push Run

Nota: Las nuevas funciones como Swift no estarán disponibles con este truco, pero deberías poder cargar y construir tu proyecto.

Espero que esto ayude

Cuando actualicé Xcode de 7.3 a Xcode 8 y ejecuté la aplicación, algunas de las vistas se muestran perfectamente pero algunas están distorsionadas. Luego, verifiqué el archivo de punta y me impulsó a elegir un tamaño de dispositivo en particular y luego mostrar el plumín de acuerdo con ese el tamaño del dispositivo que, por supuesto, no es Any-Any(Xcode 7.3) . Entonces, todos los archivos de punta no se muestran correctamente.

El trabajo de solución me forma: – presione la flecha amarilla como se muestra en la imagen a continuación

enter image description here

aparecerá una ventana emergente que muestra opciones como

enter image description here

elija Update Frames con Apply to all views in container checked.it resolverá alrededor del 90% de la interfaz de usuario distorsionada y el rest del problema de restricciones de diseño automático se puede resolver manualmente.

Para mí, la solución fue simplemente hacer clic en UIViewController con problemas y luego en Editor > Resolve Auto Layout Issues > All Views In ... > Updates Frames

Reorganizó las vistas para adaptarlas a las restricciones existentes en función de la vista predeterminada recién seleccionada (iPhone 7 en mi caso).

También tenga en cuenta: si obtiene una advertencia de la Vista Desplazada de la Barra de Navegación como yo lo hice, simplemente seleccione UINavigationController / UIViewController y luego Attributes Inspector > Bar Visibility > Shows Navigation Bar – alternarlo OFF y luego ON otra vez.

Solucioné el problema con la versión 7.3.1 de Xcode. Puede descargar el archivo .dmg desde el portal para desarrolladores de Apple. Utilicé el Autoresizing en cada aplicación y funciona muy bien para mí. Voy a actualizar a Xcode 8 solo si pueden solucionar este error.

Descárguelo aquí: https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg

Para solucionar un problema similar, configuré el xib como Freeform (no inferido) Y guardé el archivo xib como compatible con Xcode 7.x. Ambos pasos fueron necesarios en mi caso. ¡Espero que eso ayude!

Noto un botón nuevo en Xcode 8.2 (verifique el círculo naranja en la imagen). Te dará algo de ayuda.

Pasos: 1. Abra el guión gráfico y seleccione el dispositivo que desee 2. Simplemente seleccione View Controller 3. Haga clic en el botón mencionado (como en Image) 4. Actualiza el frame para ese controlador de vista y puede continuar con él

No encontré ninguna solución mejor que esta. Por favor responde si encontraste uno.

Captura de pantalla de IB

las restricciones de actualización y las subvistas de diseño en viewdidload resuelven el problema

 - (void) viewDidLoad { [self.view updateConstraints]; [self.view layoutSubviews]; [super viewDidLoad]; }