У меня 12 видов, которые я поворачиваю почти аналогично значкам на домашнем экране, когда перехожу в режим homescreen-customization-mode, касаясь значка в течение нескольких секунд.
Я использую код 3D-преобразования для выполнения поворотов. Каждый из них имеет продолжительность всего 0,02 секунды, а угол и направление вращения постоянно изменяются при измерениях ускорения.
5 из этих представлений хороши, но 12 имеют очень плохую производительность. Вот код вращения:
CATransform3D rotatedTransform = CATransform3DRotate(CATransform3DIdentity, degrees * M_PI / 180.0, 0.0f, 0.0f, 1.0f);
self.layer.transform = rotatedTransform;
вокруг него обернута какая-то основная анимация. Но я вижу здесь трату процессорного времени, так как я не делаю 3D-вещи. Я действительно только вращаю 2D и ничего больше. Это простые UIImageViews, но пользовательский класс, который выполняет анимацию вращения самостоятельно.
Я слышал, что есть «аффинные» преобразования, которые должны работать для 2D-пространства. Вы бы посоветовали изменить это на 2D в этом случае?
Должен ли я предпочесть изменить преобразование слоя или вида? что быстрее?