0

我在 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);
}
4

1 回答 1

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 '是一个整数变量,它将跟踪添加到视图中的按钮数量。您可以在头文件中声明它。

于 2012-07-06T13:22:06.267 回答