Как я могу реализовать анимацию 2d изображения на iPhone? - PullRequest
1 голос
/ 26 февраля 2009

У меня есть коллекция различных последовательностей UIImage, которые я хочу анимировать. Оказывается, использование таймера и drawRect имеет некоторые проблемы с перфорированием.

Моим следующим шагом было исследование с использованием UIImageView, но очевидно, что это приводит к утечке памяти, если вы обновляете массив animationImages более одного раза.

Моим следующим шагом было изучение использования CALayer и CAAnimation для этого, но после быстрого взгляда на документы они, похоже, не указывают, что он предназначен для анимации между изображениями (обратите внимание, я не меняю положение или что-то еще остальное, только изображения).

Я иду по правильному пути или есть какое-то другое направление, которое я должен изучить?

Ответы [ 2 ]

1 голос
/ 26 февраля 2009

Вам действительно нужно обновлять массив изображений в UIImageView более одного раза? Я бы подумал, что было бы лучше создать новый UIImageView, если вам нужно изменить анимацию, как только она уже используется?

Я слышал, что в анимации массива UIImageView есть утечка памяти, но я использую ее начиная с v2.0 и не столкнулся с какими-либо существенными проблемами. YMMV конечно.

Чтобы установить массив кадров в первую очередь, загрузите NSMutableArray с UIImages (по одному на каждый кадр) и установите его в свойстве animationImages UIImageView (затем тоже установите свойство animationDuration). Просто вызывайте метод startAnimating в любое время, когда хотите его анимировать. При обычном использовании вам не нужно менять массив кадров после установки.

0 голосов
/ 26 февраля 2009

Я не знаком с iPhone dev, но, похоже, вам нужен спрайт для 2-й анимации. Большой файл изображения, который содержит каждый кадр, и вы показываете только один его фрагмент за раз. Подобно индексированию двумерного массива, но вы просто отслеживаете смещения пикселей для каждого кадра.

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