我正在对UI上的元素进行修改。没有(额外)线程或任何异步。调用。但是我想给出慢动作效果,所以在for循环的每一步等待特定时间。如何在不阻止UI的情况下实现此目的?
具体来说,我正在for循环中移动一个按钮。我可以把
[NSThread sleepForTimeInterval:5.0];
在循环中但是在循环结束之前,按钮的位置不会反映在UI上;我想我应该调用一些东西来“重绘”每个按钮进行迭代。
有什么想法吗?
答案 0 :(得分:3)
如果您正在进行的修改是针对可动画的属性,则最好使用Core Animation。例如,如果要缓慢更改视图的框架,可以执行以下操作:
[UIView beginAnimations:@""];
[UIView setAnimationDuration:5.0];
view.frame = CGRectMake(0, 0, 320, 460);
[UIView commitAnimations];