Autoresize no funciona en xib

Hice un layout simple en .xib , el objective de implementación para mi aplicación es iOS 5 Mi vista no cambia de tamaño cuando ejecuto mi aplicación en un simulador o dispositivo.

Aquí hay una instantánea de mi file .xib ..

Cuando bash ejecutar mi aplicación en un simulador, funciona correctamente en el simulador de 4 ", pero no cambia de tamaño, cuando ejecuto mi aplicación en el simulador de 3.5". La propiedad de subview de Autoresize está marcada.

Aquí hay una instantánea de mis Simulaotrs , la primera captura de pantalla es para 3.5 "y la segunda para 4".

Gracias por adelantado.

si desea autorizar y autoorderar los íconos que hacen reference a la vista superior, intente reproducirlos con la pestaña de layout
diseño

o crear para cada layout propio .xib;)

¿podría utilizar la siguiente configuration en su file .xib (416 = 480 – 20 (ancho para la barra de estado) – 44 (ancho para la barra de navigation) introduzca la descripción de la imagen aquí

416 = 480 - 20 (ancho para la barra de estado) - 44 (ancho para la barra de navegación)

si quieres ícono en la parte superior del iPhone 5, usa la configuration siguiente para íconos: introduzca la descripción de la imagen aquíintroduzca la descripción de la imagen aquí

si quieres ícono en la parte inferior del iPhone 5, usa la configuration siguiente para íconos: introduzca la descripción de la imagen aquíintroduzca la descripción de la imagen aquí

Compruebe si ha desmarcado la opción .xib en el file .xib . introduzca la descripción de la imagen aquí

Tuve un efecto similar al que quería lograr con una cuadrícula de botones. Creo que encontrarás el autorizante que soporta iOS 5 simplemente no lo hará. Al final, tenía dos Storyboards, uno para dispositivos con iOS 6 y otro para iOS 5. Mi Delegado de aplicaciones se comprobó para ver si la vista principal respondía al método de constraints de UIView (que le dice si admite las nuevas restricciones de iOS 6, layout basado) y cargado el Storyboard relevante.

Algo así en su aplicación - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions método - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions :

 if (![self.window.rootViewController.view respondsToSelector:@selector(constraints)]) { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_BC_iPhone" bundle:nil]; UITabBarController *rootController = [storyboard instantiateInitialViewController]; [self.window setRootViewController:rootController]; } 

El Storyboard de iOS 6 se carga de forma pnetworkingeterminada, pero esto lo anula con el compatible con versiones anteriores si es necesario. El storyboard compatible con versiones anteriores está configurado manualmente para una pantalla de 3.5 "solo porque el iPhone 5 solo ejecutará el mínimo de iOS 6 y, por lo tanto, Storyboard compatible no necesitará ejecutarse en una pantalla de 4".

Configurar el Storyboard compatible con versiones anteriores no tardó mucho, simplemente duplique su iOS 6 que utiliza restricciones, luego configúrelo en una pantalla de 3.5 ", apague las restricciones y corrija las vistas.

Una alternativa podría ser diseñar los icons de forma programática en function de las dimensiones de la pantalla. La ventaja de esto es que podría diseñarlo para adaptarse a cualquier tamaño de pantalla, pero el inconveniente es que probablemente será un esfuerzo mucho mayor.

[Editar] Ha notado que está utilizando un .xib en lugar de Storyboards, pero la teoría es la misma. Compruebe si UIView responde a las constraints luego cargue el file NIB (.xib) correspondiente en consecuencia.

La solución es muy fácil.
Agregue UIVIew en su súper vista y luego agregue todos los icons en ellos de esta manera (observe el tamaño de la vista que comienza desde el controller de navigation hasta la barra de tabs)
introduzca la descripción de la imagen aquí

Esta subvista (la que tiene tus íconos) debería tener estas máscaras autorizantes introduzca la descripción de la imagen aquí

  • Y sus íconos deben tener las mismas máscaras autorizantes.

Puede get una reference del ejemplo de Ray WenderLich . Explicación muy simple de autoLayout junto con ejemplo. Le describirá todas las líneas en las que está cometiendo un error. Si ha habilitado Autolayout, las restricciones deben mostrarse en el lado izquierdo al seleccionar Ver.

Según lo veo, tiene un par de opciones dependiendo de cómo se configure su layout y cómo quiere solucionarlo.

Si está utilizando Autolayout, existirán Contraints en sus elementos, y eso podría hacer imposible mostrar todos sus elementos en la vista, incluso si usa cambiar el tamaño. Simplemente no caben. Entonces, en ese escenario, le sugiero que use una vista de desplazamiento en la resolución 480 para que su vista sea capaz de mostrarse.

Reproducción automática desactivada

En su file .h, haga una IBOutlet a su vista:

 @property (strong, nonatomic) IBOutlet UIView *contentView; 

En su file .m, configurado como tal.

 //Add scrollview UIScrollView *scrollView=(UIScrollView *)self.view; scrollView.contentSize=self.contentView.frame.size; [self.view addSubview:self.contentView]; 

Otro trabajo para hacer posible que coloque sus elementos donde quiera que se sienta con diferentes espaciados, etc. sería hacer dos files .xib diferentes y configurarlo así en ViewController:

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){ if([UIScreen mainScreen].bounds.size.height == 568.0) { //Use iPhone5 VC self = [super initWithNibName:@"RootViewController-568h" bundle:nibBundleOrNil]; } else{ //Use Default VC self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; } } return self; } 

Esto es si llamas a tu ViewController RootViewController y de esta manera estarás seguro si deciden expandir el tamaño de la pantalla en el futuro iPhone5s o iPhone6. No se verá muy bien, pero al less no bloqueará la aplicación.