显示隐藏-动画效果

network | | 访问(38)
// 收尾式动画,不容易监听动画完成时间,而且不容易实现动画嵌套
[UIView beginAnimations:nil context:nil];// 执行动画 - 开始
// 中间放可执行代码
[UIView commitAnimations];// 执行动画 - 结束
 
// 动画提示框
-(void)animate:(UIButton *)button{
    
    // 添加一个UILabel到界面上
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(((self.view.bounds.size.width-200)/2), (self.view.bounds.size.height-200), 200, 40)];
    
    // 数值是0表示黑色,1表示纯白
    // alpha表示透明度
    label.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.2];
    // 获取按钮的文字
    label.text = button.titleLabel.text;
    label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:label];
    
    // 动画效果
    // 收尾式动画,修改对象的属性,frame,bounds,alpha
    // 初始透明度,完全透明
    label.alpha = 0.0;
    // 禁用代码
    button.enabled = NO;
    // 动画结束之后删除
    // ^ 表示是block,块代码,是一个预先准备好的代码块,可以当做参数传递,在需要的时候执行!
    // 块代码在OC中,使用的非常普遍!
    [UIView animateWithDuration:1.0f animations:^{
        // NSLog(@"动画开始");
        // 要修改的动画属性
        label.alpha = 1.0;
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:1.0 animations:^{
            label.alpha = 0.0;
        } completion:^(BOOL finished) {
            // 动画完成后,所做的操作
            // NSLog(@"动画完成");
            [label removeFromSuperview];
            button.enabled = YES;
        }];
    }];
 
}