2016-08-27 4 views
0

В настоящее время я использую CADisplayLink для выполнения определенной анимации замедления. Я установил frameInterval равным 1. Я видел, что некоторые проекты с открытым исходным кодом используют 1/60 секунды как временную дельту между обновлениями кадров. Я обнаружил, что существует также метод временной метки, однако он находится в формате mach. Какой из них я должен использовать, могу ли я предположить, что частота обновления iPhone составляет 60 Гц, и, следовательно, безопасно использовать 1/60? Если я использую метод timestamp, как мне преобразовать его в секундах?timestamp vs 1/60 для CADisplayLink

Большое спасибо заранее.

ответ

1

Использование 1/60 с в качестве временной дельта опасно, потому что вы никогда не знаете, будут ли использовать будущие устройства или внешние дисплеи эту частоту обновления. Поэтому, если вы хотите быть надежным в будущем, лучше использовать решение на основе временной метки. Вы можете использовать эпохальное метку времени Unix и вычислить интервал между 2 целевых вызовов:

UInt64(NSDate().timeIntervalSince1970 * 1000.0) 

Вы можете также использовать временную метку CADisplayLink, которая уже в секундах: https://developer.apple.com/reference/quartzcore/cadisplaylink/1621257-timestamp