0

UIVIewにプログラムで20個のUIButtonを追加しています。これらのボタンにアニメーションを追加して、最初のボタンが時刻't'に表示され、その後2番目のボタンが時刻' 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これを実装するために使用できます。

ビューに20個のボタンがすべて追加されるまで、「t」時間ごとに目的のメソッドを呼び出すタイマーをスケジュールできます。

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 に答える