На самом деле довольно легко иметь разные переходы для разных макетов. Я скажу это с оговоркой, что я могу заставить его работать с тем, что я знаю, который является основным старым ванильным CSS, и я действительно понятия не имею, что делает ваш TweenMax и так далее выше. Я покажу вам пример того, как я это делаю, и я уверен, что вы сможете адаптировать его под свои нужды.
Если бы я хотел универсальный переход, я бы настроил его так:
//nuxt.config.js
transition:
{
name: 'fade',
mode: 'out-in'
},
и глобальный файл CSS, скажем, main.css
//main.css
.fade-enter-active {
animation: acrossIn .30s ease-out both;
}
.fade-leave-active {
animation: acrossOut .30s ease-in both;
}
@keyframes acrossIn {
0% {
transform: translate3d(-100%, 0, 0);
}
100% {
transform: translate3d(0, 0, 0);
}
}
@keyframes acrossOut {
0% {
transform: translate3d(0, 0, 0);
}
100% {
transform: translate3d(100%, 0, 0);
}
}
Теперь, если я хочу адаптировать переход к определенному макету. Я удалю стили из main.css и поместу их в раздел стилей файла макета:
//default.vue
<style>
.fade-enter-active {
animation: acrossIn .30s ease-out both;
}
.fade-leave-active {
animation: acrossOut .30s ease-in both;
}
@keyframes acrossIn {
0% {
transform: translate3d(-100%, 0, 0);
}
100% {
transform: translate3d(0, 0, 0);
}
}
@keyframes acrossOut {
0% {
transform: translate3d(0, 0, 0);
}
100% {
transform: translate3d(100%, 0, 0);
}
}
...
</style>
Каждый файл макета должен сохранять имя, заданное в nuxt.config, но в остальном работает нормально. Единственным ограничением является отсутствие перехода при переходе от одного макета к другому.
Обратите внимание, что комментарии к ответу oxigen о том, что -drain не освобождает NSAutoreleasePool, не верны. В документации для NSAutoreleasePool четко сказано, что -drain высвобождает (и таким образом уничтожает) NSAutoreleasePool.
-drain является заменой для использования -release для объектов NSAutoreleasePool, единственное отличие состоит в том, что он дает подсказку система сбора мусора.
Если в вашей системе есть сборщик мусора, то -drain отправлять сообщение (objc_collect_if_needed) для GC
Если у вас нет GC, тогда dump = release
Кислород прав, см. Документацию по методу сток
NSAutoreleasePool :
В среде с подсчетом ссылок, отпускает и выдает ресивер; в сборка мусора, запускает сборку мусора, если память, выделенная с последнего коллекция больше текущей порог.