2010-12-07 29 views
21

Desde dentro rootController Estoy añadiendo manualmente una UITableView, pero no sé cómo iba a obtener el tamaño de la trama ...Tamaño del cuadro debajo de la barra de navegación?

Controller *rootController = [[Controller alloc] init]; 
UINavigationController *tempNavController = [[UINavigationController alloc] initWithRootViewController:rootController]; 
[self setNavController:tempNavController]; 
[tempNavController release]; 

[window addSubview:[[self navController] view]]; 
[window makeKeyAndVisible]; 

Actualmente estoy usando: [[[self navigationController] view] frame] pero esto no tiene en cuenta la "navBar "height o el de" statusBar "(dándome: 480). ¿Hay alguna manera de obtener el tamaño del marco debajo de la barra de estado/navBar o tengo que restar 20 + 44 del número anterior?

NB: Estoy utilizando navigationController.navigationBar.frame.size.height para obtener 44

+0

¿Por qué configura manualmente el marco de la vista de tabla? Si solo agrega su controlador de vista de tabla a la matriz viewControllers de su controlador de navegación, la tabla se dimensionará automáticamente para usted, sin necesidad de configurar el marco o los límites de la vista de tabla. – Ryan

+0

Sí, si agrega la tabla y le permite cambiar el tamaño automáticamente, debería caber de manera predeterminada. – gabaum10

+1

No es un UITableViewController, es un UITableView, que estoy agregando a un UIViewController. Aprecio que pueda usar un UITableViewController, pero solo estaba tratando de hacerlo sin uno. – fuzzygoat

Respuesta

48

se puede tratar de restar

[UIApplication sharedApplication].statusBarFrame.size.height 

Y

self.navigationController.navigationBar.frame.size.height 

Desde su

self.window.frame.size.height 

Cheers, Rog

+0

¿Hay alguna manera de acceder a la barra de navegación si no tiene acceso directo al 'UINavigationController' a través de' self.navigationController'? – alexgophermix

+1

¿Has probado 'self.parentViewController.navigationController'? – Rog

+0

Lo hago desde una biblioteca de subclases de UIView, por lo que no estoy seguro de si puedo acceder a la propiedad 'self.parentViewController'. Una cosa que sí encontré que parece funcionar para todos los casos hasta el momento es simplemente obtener el alto del UIViewController a través de '((UIView *) self.nextResponder) .frame.size;' Sé que es feo: | – alexgophermix

Cuestiones relacionadas