Помогает ли это запустить интенсивные блоки анимации ядра в другом потоке? - PullRequest
1 голос
/ 28 мая 2009

У меня есть вид прокрутки с некоторыми сложными анимациями, происходящими во время прокрутки. Несмотря на то, что после 2 недель тонкой настройки производительность приемлема, прокрутка не происходит на 100% плавно, когда анимация происходит.

Я знаю, что базовая анимация выполняет анимацию в фоновом потоке. Но мне интересно, поможет ли это разделить эти блоки анимации (10 из них почти одновременно) на потоки.

Есть несколько методов, которые выглядят интересными:

- executeSelector: onThread: withObject: waitUntilDone: - executeSelectorInBackground: withObject:

или это чепуха?

Ответы [ 2 ]

3 голосов
/ 28 мая 2009

Нет, это не поможет . Как вы правильно заявили, Core Animation уже работает в отдельном потоке. Базовая анимация достаточно умна, чтобы обрабатывать анимационные блоки максимально эффективно. Я бы не советовал вмешиваться в это.

Руководство по программированию основной анимации гласит:

Абстрактный интерфейс анимации, который позволяет анимации запускаться на отдельном нить, независимо от вашего цикл выполнения приложения. Однажды анимация настроена и запускается, Базовая анимация предполагает полное ответственность за запуск его в кадре ставка.

1 голос
/ 28 мая 2009

Вы уверены, что изменчивое поведение действительно из CA? У тебя что-нибудь еще происходит?

Если у вас есть какой-либо фоновый доступ к сети, рассмотрите возможность его перемещения в отдельный поток - время, затрачиваемое на обслуживание этих вызовов, отнимает время, затрачиваемое пользовательским интерфейсом на обновление экрана при прокрутке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...