ios - 用动画显示按钮网格?

标签 ios objective-c animation button grid

目前我正在尝试在我的 iPhone 屏幕上创建一个按钮网格,它正在完美地发生,但所有这些按钮都是即时创建的。 现在我想要的是,当这些按钮显示在屏幕上时,应该以流畅的动画顺序依次创建。

如何实现?

#define WIDTH 70
#define HEIGHT 70
#define PADDING 3
#define NUMBEROFBUTTONSINAROW 3
#define X 100
#define Y 100
#define TOTALBUTTONS 6

-(void)createButton{

    NSMutableArray *array = [[NSMutableArray alloc] init];

    for(int i=0 ; i<TOTALBUTTONS;i++)
    {
        UIButton *btnClick = [UIButton buttonWithType:UIButtonTypeCustom];
        [btnClick setImage:[UIImage imageNamed:@"0.jpg"] forState:UIControlStateNormal];
        [btnClick setFrame:CGRectMake(X+((WIDTH + PADDING) * (i%NUMBEROFBUTTONSINAROW)), Y + (HEIGHT + PADDING)*(i/NUMBEROFBUTTONSINAROW), WIDTH, HEIGHT)];
        [btnClick addTarget:self action:@selector(btnTapped:) forControlEvents:UIControlEventTouchUpInside];
        btnClick.tag=i + 1;

        [array addObject:btnClick];
        [self.view addSubview:btnClick];

    }
}

最佳答案

首先,在 for 循环按钮创建中添加以下行:

[btnClick setAlpha:0.0];

然后创建一个类变量(我们称之为animationCounter)并将其设置为0,并将按钮数组(当前称为“数组”)设置为类变量。之后我们可以创建以下方法:

-(void)animateButtons
{
   if (animationCounter < 10) {
      [UIView animateWithDuration:0.3
                 animations:^{
                     ((UIButton *)[self.array objectAtIndex:animationCounter]).alpha = 1.0;
                 } completion:^(BOOL finished) {
                     animationCounter++;
                     [self animateButtons];
                 }];
   }
}

关于ios - 用动画显示按钮网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29194809/

相关文章:

ios - 写 CBCharacteristic 的问题

ios - 来自 NSArray (2dim) 的 NSMutableArray (1 dim)

javascript - AnimationEnd 隐藏另一个 div

python - 向动画散点图添加图例

jquery - 元素进入 View 动画添加类,动画

ios - 使用按钮取消选择 Collection View 中的单元格

iphone - iOS 应用程序应如何防止消耗品被重复使用?

ios - 在 iOS 中重新创建 Thrift 客户端

ios - 结构化对象中的 RestKit 键存在

ios - UITableViewController : No member 'isEditing' can be found