Подавить повторную визуализацию кадров

Можно ли подавить повторную визуализацию? Предположим, я отправляю обработчик [:a] и обработчик [:b] на состоянии db-0, Такой что:

db-0 -> [:a] -> db-1 -> [:b] -> db-0

Конечное состояние такое же, но выполняется два повторных рендеринга. Я не желаю повторного рендеринга посреднического государства db-1, Повторная визуализация, если необходимо, должна происходить только после [:a] а также [:b] оба были применены.

1 ответ

Фон

Если dispatch вызывает изменение app-dbанимационный кадр будет "запланирован" для обработки любого необходимого повторного рендеринга. В результате этот повторный рендеринг произойдет примерно через 16 мс.

Если, тем временем, другой dispatch случается, то его изменения app-db также будет обрабатываться в уже запланированном, следующем анимационном кадре.

К тому времени, когда AF вращается, изменения для обоих dispatched события будут проявляться в app-db,

Ваш сценарий

Итак, как вы можете видеть, отправка [:a] приведет к планированию автофокуса, однако перед его запуском ваш dispatch из [:b] будет дальше меняться app-db вернуться в исходное состояние.

Когда позже будет запущен AF, будут запущены все подписки слоя 2, все они, потому что app-db был изменен (каким-то образом пока неизвестно), НО потому что предыдущие значения будут = новые значения, распространение графика сигнала будет сокращено, и никакие повторные рендеры в конечном счете не будут выполняться.

Другие вопросы по тегам