Каково различие между отправкой - выпуск или - вытекает в Пул Автовыпуска?

На самом деле довольно легко иметь разные переходы для разных макетов. Я скажу это с оговоркой, что я могу заставить его работать с тем, что я знаю, который является основным старым ванильным 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, но в остальном работает нормально. Единственным ограничением является отсутствие перехода при переходе от одного макета к другому.

19
задан Thanks 28 April 2009 в 11:28
поделиться

3 ответа

Обратите внимание, что комментарии к ответу oxigen о том, что -drain не освобождает NSAutoreleasePool, не верны. В документации для NSAutoreleasePool четко сказано, что -drain высвобождает (и таким образом уничтожает) NSAutoreleasePool.

-drain является заменой для использования -release для объектов NSAutoreleasePool, единственное отличие состоит в том, что он дает подсказку система сбора мусора.

25
ответ дан 30 November 2019 в 02:56
поделиться

Если в вашей системе есть сборщик мусора, то -drain отправлять сообщение (objc_collect_if_needed) для GC

Если у вас нет GC, тогда dump = release

10
ответ дан 30 November 2019 в 02:56
поделиться

Кислород прав, см. Документацию по методу сток NSAutoreleasePool :

В среде с подсчетом ссылок, отпускает и выдает ресивер; в сборка мусора, запускает сборку мусора, если память, выделенная с последнего коллекция больше текущей порог.

10
ответ дан 30 November 2019 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: