Ho una sottoclasse UIView che disegna un cerchio il cui raggio cambia (con belle animazioni rimbalzanti). La vista sta decidendo la dimensione del cerchio.Animate intrinsicContentSize changes
Voglio che questa sottoclasse UIView cambi le dimensioni del frame in modo che corrisponda alle modifiche animate al raggio del cerchio e voglio che queste modifiche modifichino qualsiasi NSLayoutConstraints connesso alla vista (in modo che le viste siano vincolate al bordo del cerchio si muoverà mentre il cerchio si ridimensiona).
Capisco che l'implementazione di -(CGSize)intrinsicContentSize
e la chiamata di invalidateIntrinsicContentSize
quando le modifiche del raggio informeranno i vincoli da aggiornare, ma non riesco a capire come animare le modifiche a intrinsicContentSize
.
Chiamare invalidateIntrinsicContentSize
dall'interno di un blocco [UIView animateWith ... aggiorna immediatamente il layout.
È persino possibile, ed esiste un approccio alternativo/migliore?
Ho la sensazione che questo non sia possibile. Prendiamo l'esempio di 'UILabel' il suo' intrinsicContentSize' è una funzione della sua dimensione del carattere. Tuttavia non c'è un modo carino per animare un cambio di font. La soluzione alternativa per l'etichetta è di animare il cambio di trasformazione del suo livello (usando un 'CAAnimation') e quindi di cambiare il carattere dopo che l'animazione è stata completata - Non è bello. – Robert