Estoy creando una aplicación que usa un UITAbleView para mostrar algunos datos recuperados de una base de datos SQLite. La aplicación comienza con una pantalla de bienvenida y luego pasa a la vista principal. Usé el generador de interfaces para agregar el objeto UITableView. Cuando se inicia la aplicación, UITableView no tiene el tamaño que se creó en IB. Además, al desplazarse, UITAbleView actúa de forma muy errática. Se sacude, salta, el encabezado sale volando de la pantalla, etc.

Investigué un poco y leí dónde podría estar debido a la forma en que estoy pasando de la pantalla de inicio a la vista principal.

Este es el método UIApplication de PorjectFiveAppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ProjectFiveSplashController alloc] initWithNibName:@"ProjectFiveSplashController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;

}

Este es el código del método loadView del SplashViewController:

- (void)loadView{

CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
UIView *view = [[UIView alloc] initWithFrame:appFrame];
view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
self.view = view;
[view release];

splashImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ProjectFiveSplash.png"]];
splashImageView.frame = CGRectMake(0,0,1024,768);
[self.view addSubview:splashImageView];

viewController = [[ProjectFiveViewController alloc] initWithNibName:@"ProjectFiveViewController" bundle:[NSBundle mainBundle]];
viewController.view.alpha = 0.0;
[self.view addSubview:viewController.view];


activityLoading = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityLoading.frame = CGRectMake(0, 0, 1024, 768);
activityLoading.center = self.view.center;
[self.view addSubview: activityLoading];


}

Al objeto UITableView se le han asignado estas propiedades en IB:

Scrollers: muestra los Scrollers verticales; Desplazamiento habilitado Interacción: Interacción del usuario habilitada Dibujo: Autoresize Subviews

0
Kevin McFadden 21 ene. 2012 a las 01:45

1 respuesta

La mejor respuesta

Terminé moviendo UITableView al método viewWillAppear y los comportamientos se detuvieron

0
Kevin McFadden 3 feb. 2012 a las 05:49