2012-07-06 81 views
0

我在UIVIew中以編程方式添加了20個UIButton,我要做的就是在這些按鈕上添加動畫,以便第一個按鈕在時間t之後出現,時間t之後將出現在時間t +1「等。我曾嘗試在延遲後添加按鈕,但無法使用所有按鈕將一次顯示爲查看。
如果有解決方案,請讓我知道。在iOS中添加多個子視圖的動畫

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); 
} 
+0

你可以發佈代碼,嘗試使用延遲來實現這一目標嗎? – 2012-07-06 12:32:40

+0

看到編輯的問題... – 2012-07-06 13:14:48

+0

好吧,所以你添加延遲1秒爲每個按鈕添加子視圖,以便他們都出現在同一時間。試試這個:[self.view performSelector:@selector(addSubview :) withObject:button afterDelay:i * 0.1]; – 2012-07-06 13:19:59

回答

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'是整型變量,將保持添加到視圖按鈕的數量的軌道。你可以在頭文件中聲明它。

+0

thanx,那是伎倆 – 2012-07-06 16:38:39

+0

偉大的,它爲你工作..你是歡迎.. :) – 2012-07-09 07:24:29