在iOS中添加多个子视图的动画

时间:2012-07-06 12:31:14

标签: iphone ios xcode core-animation

我在UIVIew中以编程方式添加了20个UIButton,我要做的就是在这些按钮上添加动画,以便第一个按钮出现在时间't'之后,第二个按钮将出现在时间't + 1',依此类推。我已经尝试在延迟一段时间后添加按钮但是它不工作所有按钮将一次显示。
如果有解决办法,请告诉我。

for(int i = 0; i<20;i++)
{
    UIButton *button = [UIButton buttonWithType: UIButtonTypeCustom]; 
    [button setBackgroundImage:[UIImage imageNamed:@"i_setting30.png"] forState:UIControlStateNormal];  
    [button setImage:[UIImage imageNamed:@"threadmenu.png"] forState:UIControlStateNormal];
    [button addTarget: self action:@selector(threadmenu) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view performSelector:@selector(addSubview:) withObject:button afterDelay:1];
    button.frame = CGRectMake(0+i*20, 0, 20, 20);
}

1 个答案:

答案 0 :(得分:2)

您可以使用NSTimer来实现此目的。

您可以安排一个计时器,该计时器将在每't'时间之后调用所需的方法,直到视图中添加了所有20个按钮。

NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:t target:self selector:@selector(addButton:) userInfo:nil repeats:YES];

(void) addButton:(NSTimer*)timer{
   //Your code for adding button goes here 
   buttonCount++;
   if(buttonCount==20)
   {
          [timer invalidate];
          timer = nil;
          buttonCount = 0;
   }
}

此处' buttonCount '是一个整数变量,用于跟踪添加到视图中的按钮数量。您可以在头文件中声明它。