iOSUikit Dynamics


introduzione

UIKit Dynamics è un motore fisico completo del mondo reale integrato in UIKit. Ti permette di creare interfacce che sembrano reali aggiungendo comportamenti come gravità, attaccamenti, collisione e forze. Definisci i tratti fisici che vorresti che i tuoi elementi dell'interfaccia adottassero e il motore dinamico si occuperà del resto.

Osservazioni

Una cosa importante da tenere a mente quando si utilizza UIKit Dynamics è che le viste posizionate dall'animatore non possono essere facilmente posizionate da altri metodi di layout iOS comuni.

I nuovi arrivati ​​in UIKit Dynamics spesso combattono con questo importante avvertimento. Posizionare i vincoli su una vista che è anche un elemento di un UIDynamicBehavior causerà probabilmente confusione poiché sia ​​il motore di layout automatico che il motore di animatore dinamico combattono nella posizione appropriata. Allo stesso modo, il tentativo di impostare il frame direttamente su una vista controllata dall'animatore genererà in genere un'animazione distorta e un posizionamento imprevisto. L'aggiunta di una vista come elemento a un UIDynamicBehavior significa che l'animatore si assumerà la responsabilità di posizionare una vista e in quanto tale le modifiche delle posizioni della vista dovrebbero essere implementate tramite l'animatore.

È possibile impostare la cornice di una vista che viene aggiornata da un animatore dinamico, ma che dovrebbe essere immediatamente seguita dalla messaggistica dell'animatore per aggiornare il modello interno dell'animatore della gerarchia della vista. Ad esempio, se ho UILabel , label che è un elemento di un UIGravityBehavior posso spostarlo nella parte superiore dello schermo per vederlo cadere di nuovo dicendo:

veloce

label.frame = CGRect(x: 0.0, y: 0.0, width: label.intrinsicContentSize.width, height: label.intrinsicContentSize.height)
dynamicAnimator.updateItem(usingCurrentState: label)

Objective-C

self.label.frame = CGRectMake(0.0, 0.0, self.label.intrinsicContentSize.width, self.label.intrinsicContentSize.height);
[self.dynamicAnimator updateItemUsingCurrentState: self.label];

Dopo di che l'animatore applicherà il comportamento gravitazionale dalla nuova posizione dell'etichetta.

Un'altra tecnica comune consiste nell'usare UIDynamicBehaviors per posizionare le viste. Ad esempio, se il posizionamento in vista sotto un evento di tocco è desiderato, creando un UIAttachmentBehavior e aggiorna il suo anchorPoint sia touchesMoved o UIGestureRecognizer azione s' è una strategia efficace.

Uikit Dynamics Esempi correlati