tablas - uitableview tutorial swift 4
UITableView: cambiar el tamaño de la vista del pie de página programáticamente no funciona (2)
Para cambiar el cuadro de la vista del pie de página, aquí está la modificación simple:
En Swift: -
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.5
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView()
let footerChildView = UIView(frame: CGRect(x: 60, y: 0, width: tableView.frame.width - 60, height: 0.5))
footerChildView.backgroundColor = UIColor.darkGray
footerView.addSubview(footerChildView)
return footerView
}
El pie de página de mi vista de tabla es una vista que muestra algunos tweets de un usuario, por lo que no sé su altura hasta que recibí los tweets, creé un FooterViewController
que tiene un método refreshTweets
, lo agrego en viewDidLoad
:
FooterViewController *controller = [[FooterViewController alloc] initWithNibName...];
[[self tableView] setFooterView:[controller view]];
[controller refreshTweets];
En el método refreshTweets
, leo tweets y calculo la altura total, y reinicio la altura de la vista (el pie de página):
self.view.frame = newFrame;
pero no tiene sentido, la altura del pie de página sigue siendo la altura que establecí en Interface Builder, ¿falta algo o alguna otra forma alternativa de hacerlo?
¡Gracias!
edición: puedo cambiar el tamaño de la vista para que sea lo suficientemente pequeño en el generador de interfaces, y se ampliará después de calcular la altura de los tweets y la configuración de view.frame, pero la vista de la tabla aún cree que su pie de página tiene la altura anterior, es decir, el espacio extra está fuera de la vista de tabla y solo puedo verla si arrastro la tabla hacia arriba.
myTable.tableFooterView = myFooterView;
Reasignar la vista de su pie de página a la tabla. La tabla reconocerá que tiene un nuevo pie de página y volverá a hacer lo que sea necesario para el tamaño adecuado del pie de página.