用动画显示按钮网格?
Display grid of button with animation?
目前我正在尝试在我的 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];
然后创建一个 class 变量(我们称它为 animationCounter)并将其设置为 0,并将按钮数组(当前称为 "array")设置为 class 变量。之后我们可以创建以下方法:
-(void)animateButtons
{
if (animationCounter < 10) {
[UIView animateWithDuration:0.3
animations:^{
((UIButton *)[self.array objectAtIndex:animationCounter]).alpha = 1.0;
} completion:^(BOOL finished) {
animationCounter++;
[self animateButtons];
}];
}
}
目前我正在尝试在我的 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];
然后创建一个 class 变量(我们称它为 animationCounter)并将其设置为 0,并将按钮数组(当前称为 "array")设置为 class 变量。之后我们可以创建以下方法:
-(void)animateButtons
{
if (animationCounter < 10) {
[UIView animateWithDuration:0.3
animations:^{
((UIButton *)[self.array objectAtIndex:animationCounter]).alpha = 1.0;
} completion:^(BOOL finished) {
animationCounter++;
[self animateButtons];
}];
}
}