2010-04-09 3 views
0

Я вношу изменения в элементы интерфейса. Нет (лишней) нити или любой асинхронной. звонки. Однако я хочу дать эффект медленного движения, поэтому подождите определенное время на каждом этапе цикла for. Как я могу достичь этого, не блокируя пользовательский интерфейс?Подождите, пока модификация пользовательского интерфейса iPhone

В частности, я перемещаю кнопку в цикле for. Я могу поставить

[NSThread sleepForTimeInterval:5.0]; 

в петле, но положение кнопки не отражается на пользовательском интерфейсе до тех пор, пока петля не закончится; Я думаю, что я должен назвать что-то, чтобы «перерисовать» кнопку на каждом для итерации.

Любые идеи?

ответ

3

Лучше использовать Core Animation, если модификации, которые вы делаете, являются анимированными свойствами. Например, если вы хотите медленно изменить рамку представления, вы можете сделать что-то вроде:

[UIView beginAnimations:@""]; 
[UIView setAnimationDuration:5.0]; 
view.frame = CGRectMake(0, 0, 320, 460); 
[UIView commitAnimations]; 
Смежные вопросы