Construí un nuevo proyecto desde cero en Swift en Xcode 6 (Beta 1) y he visto un comportamiento extraño con Storyboards y la salida que estoy viendo.
He creado una interfaz simple (como se muestra a continuación), con las propiedades de View Controller incluidas. Cuando ejecuto esto en el simulador, esperaría que 'Hello, World' sea central en la interfaz de usuario; sin embargo, parece que este 'Square' simplemente se está ajustando a la pantalla del iPhone y, por lo tanto, se muestra una vista incorrecta (ver a continuación )
Mi pregunta es: ¿alguien más ha visto este comportamiento y cómo lo solucionaron?
¡Gracias!
ios
iphone
interface-builder
xcode6
Algodón de azúcar
fuente
fuente
Respuestas:
Si bien la respuesta de Asif Bilal es una solución más simple que no involucra Clases de tamaño (que se introdujeron en iOS 8), se recomienda encarecidamente que se acostumbre a las clases de tamaño, ya que son el futuro, y eventualmente se incorporará de alguna manera. punto."
Probablemente no haya agregado las restricciones de diseño.
Seleccione su etiqueta, toque el botón de restricciones de diseño en la parte inferior:
En ese menú, agregue ancho y alto (NO debe ser el mismo que el mío) marcando su casilla de verificación y haga clic en Agregar restricciones. Luego Control-arrastre su etiqueta a su vista principal, y luego cuando haga clic en, debe tener las opciones para centrar horizontal y verticalmente en el contenedor. Agregue ambos, y debería estar configurado.
fuente
Siga los siguientes pasos para resolver el problema.
En Storyboard, seleccione cualquier vista, luego vaya al inspector de archivos. Desactive la casilla "Usar clases de tamaño", le pedirá que mantenga los datos de la clase de tamaño para: iPhone / iPad. Y luego haga clic en el botón "Deshabilitar clases de tamaño". Hacer esto hará que el tamaño de vista del guión gráfico con el dispositivo seleccionado.
fuente
Si usa Xcode 6 y diseña para iOS 8, ninguna de estas soluciones es correcta. Para que sus vistas solo de iPhone tengan el tamaño correcto, no desactive las clases de tamaño, no desactive las métricas inferidas y no establezca restricciones (todavía). En su lugar, utilice el control de clase de tamaño, que es un botón de texto fácil de omitir en la parte inferior de Interface Builder que inicialmente lee "wAny hAny".
Haga clic en el botón y elija Ancho compacto, Altura normal. Esto cambia el tamaño de sus vistas y cubre todas las orientaciones de retrato de iPhone. Documentos de Apple aquí: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/SelectingASizeClass.html o busque "Seleccionar una clase de tamaño en Interface Builder"
fuente
En Storyboard, seleccione su ViewController y vaya a Atribute Inspector. En la parte superior, en Métricas simuladas, tiene propiedades de Tamaño y Orientación configuradas como Inferidas. Cámbielos a los valores deseados.
Para que una aplicación se muestre correctamente en otro tamaño de pantalla, también debe configurar restricciones, como lo describe Can Poyrazoğlu en la primera publicación.
fuente
Tuve este problema en xcode 6 y hay una manera de resolver los conflictos de cambio de tamaño. Si selecciona su vista, en la parte inferior verá un icono que se parece a | -Δ- |. Si hace clic en él, su proyecto cambiará de tamaño para diferentes dispositivos.
fuente
Vaya al Inspector de atributos (esquina superior derecha) en la métrica simulada, que tiene las propiedades Tamaño, Orientación, Barra de estado, Barra superior, Barra inferior. Para TAMAÑO, cambie Inferido -> Forma libre.
fuente
En su página del guión gráfico, vaya al Inspector de archivos y desactive 'Usar clases de tamaño'. Esto debería reducir su controlador de vista al tamaño normal de iPhone con el que estaba familiarizado. Tenga en cuenta que el uso de 'clases de tamaño' le permitirá diseñar su proyecto en muchos dispositivos. Una vez que desmarca esto, el Xcode le dará un diálogo de advertencia de la siguiente manera. Esto debería explicarse por sí mismo.
"Deshabilitar las clases de tamaño limitará este documento a almacenar datos para una sola familia de dispositivos. Los datos para la clase de tamaño que mejor represente el dispositivo de destino se conservarán, y todos los demás datos se eliminarán. Además, los valores se convertirán a su "equivalentes adaptativos".
fuente
Para cualquiera que use XCode 7, es muy fácil diseñar para un tamaño de dispositivo específico (en lugar del lienzo cuadrado predeterminado).
En Interface Builder, seleccione su ViewController o Scene en el menú de la izquierda. Luego debajo
Show the Attributes Inspector
, vaya aSimulated Metrics
, y elija el deseadoSize
del menú desplegable.fuente
Probablemente usará "Resolver problemas de diseño automático" (icono de triángulo inferior derecho en la vista del guión gráfico) para agregar / restablecer las restricciones sugeridas (Xcode 6.0.1).
fuente