2013-06-27 4 views
0

У меня есть NSTimer, где я делаю простое движение UIImageView для одного места в другое, используя физическую формулу для функциональности таймера я NSTimer как это,Анимирование просмотров с таймером

//Timer starting 
timer = [NSTimer timerWithTimeInterval:0.03 target:self selector:@selector(elapse_time) userInfo:nil repeats:YES]; 
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; 

В методе elapse_time я уезжаю объект как,

myImageView_Object.frame = //Some CGRect value 

Теперь у меня есть еще myImageView _Object в массиве мне нужно setFrame по одному для всех myImageView _Object в массиве. Как я могу это сделать?

ответ

0

Ответы, которые у вас есть до сих пор, точно отвечают на ваш вопрос, не пытаясь решить вашу проблему.

Вы перемещаете UIView. и вы хотите установить его положение. И вы делаете это на довольно высокой частоте. Реальный способ сделать это с анимацией UIView. Вы даете ему блок и рассказываете, как долго должна проходить анимация, и вы скажете, какую позицию она должна быть после общего времени. Он заботится о твининге и отображает для вас. Например:

Вы хотите переместить UIView от его исходного положения в какое-то новое положение в то время, скажем, на 3 секунды:

// Assume view1, view are UIView objects 
view1.frame = // set initial frame 
view2.frame = // set initial frame 
view3.frame = // set initial frame 

[UIView animateWithDuration:3.0 animations:^{ 
    view1.frame = // set final frame 
    view2.frame = // ... 
    view3.frame = == ... 
}]; 

Есть другие варианты этого, что вы можете использовать, и вы можете найти их в UIView Documentation под анимацией с блоками