Creo que va a ser una respuesta simple en torno a AutoResizingMasks, pero no puedo entender este tema.Cambia el tamaño de los encabezados de UITableView al rotar (sobre todo en el iPad)
Tengo una aplicación para iPad que muestra 2 UITableViews lado a lado. Cuando giro de Vertical a Horizontal y viceversa, las celdas de UITableView cambian de tamaño perfectamente, sobre la marcha, mientras se produce la rotación. Estoy utilizando UITableViewCellStyleSubtitle UITableViewCells (no subclasificado por ahora), y he configurado el UITableView en IB para anclar en los bordes superior, izquierdo e inferior (para el UITableView izquierdo) y para tener un ancho flexible.
estoy suministro de mi propio objeto UIView para
- (UIView *)tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section
Esto es lo que tengo hasta el momento (llamado como un método de clase de otra clase):
+ (UIView *)headerForTableView:(UITableView *)tv
{
// The view to return
UIView *headerView = [[UIView alloc]
initWithFrame:CGRectMake(0, 0, [tv frame].size.width, someHeight)];
[headerView setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleRightMargin];
// Other layout logic... doesn't seem to be the culprit
// Return the HeaderView
return headerView;
}
Por lo tanto, en cualquier orientación, todo se carga como yo quiero. Después de la rotación, si llamo manualmente a reloadData o espero hasta que mi aplicación lo active o desplacé el UITableView, los headerViews cambiarán su tamaño y se mostrarán correctamente. Lo que no puedo entender es cómo configurar la propiedad AutoResizeMask correctamente para que el encabezado cambie de tamaño al igual que las celdas.
No me queda claro de su pregunta: ¿es el tema que los anchos de encabezados no están cambiando con la mesa, que espera sus alturas para cambiar, o que los cambios que suceden no está siendo animado con la rotación de la mesa? –
No he visto esto en mucho tiempo, pero una cosa inmediatamente saltó sobre mí en la revisión. Supongo que mi problema estaba relacionado con tener un ancho flexible Y márgenes flexibles a derecha e izquierda. ¿Quién sabe cómo predecir el comportamiento de cambio de tamaño horizontal en tal escenario? Apuesto a que la configuración de AutoResizingMask para un ancho más flexible hubiera sido la respuesta. De nuevo, sin embargo, como dije a continuación, me he movido a una solución completamente diferente. – mbm29414