Mi sento come se questa fosse una semplice risposta che ruotava attorno a AutoResizingMasks, ma non riesco a spiegarmi questo argomento.Ridimensiona automaticamente le intestazioni UITableView su Ruota (Principalmente su iPad)
Ho un'app per iPad che mostra 2 UITableViews side-by-side. Quando ruoto da Verticale a Orizzontale e viceversa, le celle di UITableView si ridimensionano perfettamente, al volo, mentre avviene la rotazione. Sto usando UITableViewCellStyleSubtitle UITableViewCells (non sottoclasse per ora), e ho impostato UITableView in IB per ancorare ai bordi superiore, sinistro e inferiore (per UITableView sinistro) e avere una larghezza flessibile.
sto fornendo il mio proprio oggetto UIView per
- (UIView *)tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section
Ecco quello che ho finora (chiamato come metodo di classe da un'altra classe):
+ (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;
}
Così, in entrambi i orientamento, tutto si carica proprio come voglio. Dopo la rotazione, se richiami manualmente reloadData o attendi fino a quando la mia app non lo attiva, o scorri UITableView, l'headerView sarà ridimensionato e mostrato correttamente. Quello che non riesco a capire è come ottenere correttamente la proprietà AutoResizeMask impostata in modo che l'intestazione si ridimensiona proprio come le celle.
Non è chiaro per me dalla tua domanda: è il problema che le larghezze delle intestazioni non stanno cambiando con la tabella, che ci si aspetta loro altezze di cambiare, o che i cambiamenti che si verificano non sono essere animato con la rotazione del tavolo? –
Non l'ho visto da molto tempo, ma una cosa mi è subito venuta in mente dopo la recensione. Immagino che il mio problema fosse legato alla larghezza flessibile e ai margini flessibili destro e sinistro. Chi sa come prevedere il comportamento di ridimensionamento orizzontale in un tale scenario? Scommetto che l'impostazione di AutoResizingMask su una larghezza flessibile sarebbe stata la risposta. Di nuovo, tuttavia, come ho detto di seguito, mi sono trasferito su una soluzione completamente diversa. – mbm29414