Ho un UITableView
con altezze di riga automatiche e un numero personalizzato UITableViewCell
. All'interno dello UITableViewCell
, aggiungo per la prima volta alcuni UIButton
s con i vincoli di Autolayout programmatico. Sono posizionati perfettamente come voglio. Quindi, dopo 3 secondi (NSTimer
), rimuovo tutti quelli UIButton
s e aggiungo nuovamente un numero diverso. (Per esempio inizialmente ho 4 UIButtons
, dopo 3 secondi, io rimuovere quelle 4 UIButton
s e aggiungere 3 quelli diversiModifiche di Autoapprendimento programmatico all'interno di UITableViewCell aggiornate solo dopo il cambio di orientamento
Inizialmente:.
Messaggio di rotazione:
Perché sta succedendo? Non vedo alcun avviso di Autolayout. Inoltre, dopo un cambio di orientamento, tutto è posizionato correttamente. Cos'è che richiede un cambiamento di orientamento? Come posso forzare manualmente (ricaricare la Tableview proprio per questo sembra troppo da fare)
PS:? Ho provato ad utilizzare setNeedsUpdateConstraints
, layoutIfNeeded
, layoutSubviews
ma senza alcun risultato.
Ecco il codice UITableViewCell
: http://pastebin.com/TcHUXgDU. (Aggiunto un pastebin per non inquinare questo spazio) Ma fondamentalmente, c'è un metodo configure:
che ho nella mia sottoclasse tableview che chiamo nello cellForRowAtIndexPath
del suo contenente UITableView
. Questo metodo aggiunge quei vincoli. Inoltre, dopo l'attivazione del timer, viene richiamato lo stesso codice (in un'altra funzione) tranne per il fatto che il numero di elementi che aggiungo è diverso dal numero iniziale di elementi.
Questo è il mio layout UITableViewCell
: (solo alto, in basso, da guida, sono stati aggiunti i vincoli finali al UIView "Outerview")
puoi pubblicare qualche codice? e prima dell'orientamento posso vedere che l'altezza della cella è variabile, il che sta facendo schiacciare i pulsanti sul padding, mentre il cambiamento di orientamento lo rende ok cambiando l'altezza della cella. –
Ho pubblicato del codice. Inoltre, prima dell'orientamento, l'altezza della cella è costante per tutte e 3 le celle. (a differenza di come dici tu) –
Non risponde alla tua domanda, ma avrai un tempo molto più bello implementando automaticamente l'autolayout se usi una libreria come [Massoneria] (https://github.com/SnapKit/Masonry) – sjwarner