Ho statico UITableView
con celle stile di base, altezza 44 predefinita. C'è un'etichetta in ogni cella con lo stile di testo Corpo. In questo modo sto ottenendo il comportamento di tipo dinamico gratuitamente.UILabel scompare da UITableViewCell statico con tipo dinamico
Funziona a meno che:
- Aprire app
- Aprire la tabella vista
- Aprire Impostazioni ang cambio formato testo (più grande del più piccolo) di nuovo
- Aperto app, etichette di fuga.
- Vai a un'altra vista (retro) e aprire di nuovo tavolo travagliata - testo modificato e sembra buono
sono riuscito a risolvere il problema con un trucco
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(preferredContentSizeChanged)
name:UIContentSizeCategoryDidChangeNotification object:nil];
}
- (void)preferredContentSizeChanged
{
// adjust the layout of the cells
// for some reason text from labels are disappear
self.statusBarCell.textLabel.text = @"Status bar";
self.itemColorCell.textLabel.text = @"Color";
Ma ho un altro esattamente lo stesso UITableView
e questo non funziona. Ho provato prese per celle ed etichette. Ho provato i metodi reloadData
e setNeedsLayout
.
Ecco le immagini. Le etichette sono giallo e visualizzare il contenuto è blu:
Grazie per la condivisione, l'ho provato sul mio altro tavolo statico e non ha aiutato. Devo ancora ricreare il testo delle etichette sulla notifica 'preferredContentSizeChanged'. –
No, la mia "soluzione" di cui sopra non funziona con tabelle statiche, ma penso che internamente il problema sia lo stesso: le etichette nelle celle non si aggiornano correttamente ai nuovi font - probabilmente perché c'è troppa cache in corso . – mschmidt
Vedo che nella mia risposta sto facendo la stessa riga di codice. Lo faccio solo nel metodo 'cellForRowAtIndexPath' di' UITableViewController'. –