Ho alcune tabelle (raggruppate in stile) nella mia app per iPhone (solo su una parte dello schermo e aggiunte con Interface Builder
, ma non sottoclasse UITableViewController
) che l'80% delle volte sono piccole e si adattano allo schermo. Quando il tavolo si adatta allo schermo, mi piacerebbe disabilitare lo scorrimento, per renderlo un po 'più pulito. Ma se la tabella esce dallo schermo (quando le righe vengono successivamente aggiunte ad essa), vorrei abilitare nuovamente lo scorrimento (perché altrimenti non puoi vedere quel contenuto.)
C'è un modo per fare questo? Non riesco a capirlo. So di fare:
tableView.scrollEnabled = NO;
ma non sono sicuro di dove, o se devo calcolare la dimensione dell'oggetto tabella o qualcosa per farlo funzionare.
Aggiornamento : ecco la soluzione che finalmente ha funzionato per me:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
Eseguo questo codice dopo aver chiamato reloadData
sul tavolo, calcola le giuste dimensioni e sembra funzionare.
table.frame.size.height
è la dimensione effettiva dell'oggetto (lo puoi vedere in Interface Builder
) visualizzata sullo schermo, mentre table.contentSize.height
le altezze di: intestazione, piè di pagina e altezza di ogni cella sommate.