2009-06-09 3 views
3

Я знаю, как реализовать базовую анимацию, перемещая/изменяя размер UIView. Однако следующие две анимации кажутся немного сложными.Лучший способ реализовать анимацию на iPhone SDK?

1) Представьте себе автомобильную игру, где, когда вы нажимаете на кнопку педали, спидометр вращается. Как сделать такую ​​анимацию, где бар «заполняется» круглой формой?

2) Вторая анимация легче описать. Как сделать анимацию чисел, увеличивающихся там, где число слайдов вниз, и новый номер отображается сверху, как у игрового автомата.

ответ

6

Для вашего первого вопроса я бы подумал, что CGAffineTransform - это путь. Пользуясь этим, я думаю, что будет что-то подобное может работать:

// BarView is a derived class from UIView that knows how to draw a "bar" 
BarView view[NumBars]; 
for(int i = 0; i < NumBars; i++) 
{ 
    // First place the view at the center of the instrument 
    [view[i] setCenter:CGPointMake(InstrumentX, InstrumentY)]; 

    // Now translate the view InstrumentWidth units on the positive X-Axis 
    CGAffineTransform translate = CGAffineTransformMakeTranslation(InstrumentWidth, 0); 

    // Rotate the view about the origin by an angle related to which "bar" this is 
    CGAffineTransform rotate = CGAffineTransformMakeRotation(i*AngleBetweenBars); 

    // create a transform matrix from the translation and rotation matrices and apply it to the view 
    [view[i] setTransform:CGAffineTransformConcat(translate, rotate)]; 
} 
+0

Я не эксперт CGAffineTransform, но не этот код просто рисует планку по кругу? Разве это на самом деле освещает бары вокруг круга в анимации? – erotsppa

+0

Да, этот код будет просто рисовать полосы по кругу по периметру инструмента. –

Смежные вопросы