Attualmente sto dando gli ultimi ritocchi a un progetto.Animating setHidden: su NSView tramite Cocoa binding
Un sacco (se non tutti) della logica dell'interfaccia utente si basa attualmente su Cocoa Bindings. Alcuni degli elementi dell'interfaccia utente (etichette, pulsanti, ecc.) Hanno i loro binding "nascosti" definiti. Quando determinati eventi vengono attivati, la visibilità di questi elementi viene attivata.
Sto provando ad animare il cambio di visibilità (animando l'opacità e forse anche la scala). Questo potrebbe facilmente essere realizzato in diversi modi, sia impostando le proprietà del layer rilevanti, aggiungendo le animazioni al layer, ecc. Tuttavia, dal momento che sto cercando di fare totalmente affidamento sul comportamento dei binding, "non posso" fare realmente questo direttamente.
ho provato un'implementazione con le azioni di livello, definendo le azioni per le chiavi kCAOnOrderIn
e kCAOnOrderOut
sugli elementi rilevanti, ma in realtà non ha funzionato, come il setHidden:
è più probabile essere attivato sul NSView
posto del CALayer
- - che ha un senso.
Quindi, la mia domanda è: come animereste setHidden:
su un NSView, quando setHidden:
viene invocato da Cocoa Bindings.
Grazie.
'setHidden:' su un CALayer * è * animatable. L'azione predefinita per le chiavi order in/out usa effettivamente una CATransition che causa l'opacità dei livelli di animare. – phluid
Sì. Nascosto è animabile nel senso che è possibile modificare i valori, tuttavia esistono solo due valori possibili. Core Animation interpola valori intermedi. Con nascosto, è SÌ o NO. Ma quello che sembra che tu voglia fare è attivare automaticamente un'animazione dissolvenza quando viene chiamato setHidden. È corretto? Se è così, non penso che tu possa farlo solo con una rilegatura. Probabilmente dovrai scrivere codice. Puoi provare a associare la proprietà alpha e impostarla su 0 o su 1. Sembra che possa dare il tuo desiderio, ma non sono sicuro di come hai collegato le cose. –