анимации ios target-c - PullRequest
       12

анимации ios target-c

0 голосов
/ 05 декабря 2011

У меня есть глобальная переменная p.У меня есть функция, которая рисует (или перерисовывает) мои сложные объекты UIView в зависимости от значения этой глобальной переменной.Когда я увеличиваю p, мои объекты uiview должны быть перерисованы.Мне нужно, чтобы это было сделано с использованием анимации.

double pInitialValue=0.5;
double pNewValue=1.0;

//somewhere before animation we must call [self redraw] to draw our view with p=pInitialValue;

//then, when we call animate function.
//we change p to pNewValue
//and every step must be redrawed using [self redraw]

p=pNewValue; //using animation p must slowly grow from pInitialValue to pNewValue
[self redraw]; //and ofcourse user must see every step of animation so we need to call redraw function

например, мне нужна анимация с продолжительностью 4. Это означает, что в течение этих 4 секунд мой p должен расти от pInitialValue до pNewValue, и на каждом шаге моя функция перерисовки должнапозвони

Помоги мне, пожалуйста.Как это можно сделать?

1 Ответ

1 голос
/ 05 декабря 2011

Вы можете использовать таймер для увеличения значения p.Сделайте это следующим образом: создайте переменную экземпляра в вашем классе, определенную как

NSTimer *timer;

После этого, непосредственно перед тем, как вы хотите, чтобы ваша анимация произошла, выполните:

CGFloat timerInterval = 1 / 30; // This means 30 frames per second. Change this as you want.
timer = [NSTimer scheduledTimerWithTimeInterval:timerInterval target:self selector:@selector(increaseP) userInfo:nil repeats:YES];

Чем есть метод с именем increaseP как это:

- (void)increaseP
{
    if (p < maxPValue) {
        // Increase p here and redraw your things
    }
    else {
        [timer invalidate];
    }
}

Дайте мне знать, если у вас есть какие-либо вопросы, и если это работает для вас.

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