UITabBar ocultará la última celda de UITableView

self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, [UIScreen mainScreen].bounds.size.height ) style:UITableViewStylePlain]; 

introduzca la descripción de la imagen aquí

Si cambio el marco de tableview a

 (0.0, 0.0, 320.0, [UIScreen mainScreen].bounds.size.height -49.0) 

introduzca la descripción de la imagen aquí

la barra de desplazamiento dejará un espacio en blanco, no me gusta. ¿Cómo puedo solucionar esto?

Muchas gracias.

Puede intentar configurar el contentInset de la vista de esa tabla. En iOS 7 hay un topLayoutGuide y bottomLayoutGuide (que es lo que quieres). Dentro de un UITabBarController el bottomLayoutGuide debería darle básicamente la altura de la barra inferior.

 tableView.contentInset = UIEdgeInsetsMake(0, 0, self.bottomLayoutGuide.length, 0); 

Debería hacer el truco.

Establezca la propiedad translúcida en NO

 // In init or viewDidLoad of tab bar controller self.tabBar.translucent = NO; 

Ahora, la barra de tabs debe cambiar el tamaño de la vista de tabla.

La propiedad translucent está disponible iOS 7 y versiones posteriores.

Tienes 2 opciones:

primero

 self.tableView.contentInset.bottom = self.tabBarController?.tabBar.frame.height ?? 0 

Esto hará el truco y saveá la propiedad transparente de la barra de tab .


Segundo, en la vista de layout, simplemente desmarca la opción Under Bottom Bars , pero piensa que la tab bar se verá como un color sólido (nada detrás de ella).

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

// En viewDidLoad (), las siguientes líneas funcionaron para mí

self.edgesForExtendedLayout = UIRectEdge.None self.navigationController?.navigationBar.translucent = false self.tabBarController?.tabBar.translucent = false