代码改变世界

动画完成后再执行方法的两个方法

2016-12-26 08:12  supper_Ho  阅读(961)  评论(0编辑  收藏  举报

- (void)smallImg

{

    // 执行动画

    [UIView animateWithDuration:0.25 animations:^{

        // 存放需要执行动画的代码

        

        // 1.头像慢慢变为原来的位置和尺寸

        self.iconBtn.frame = CGRectMake(85, 80, 150, 150);

        

        // 2.阴影慢慢消失

        self.cover.alpha = 0.0;

    } completion:^(BOOL finished) {

        // 动画执行完毕后会自动调用这个block内部的代码

        

        // 3.动画执行完毕后,移除遮盖(从内存中移除)

        [self.cover removeFromSuperview];

        self.cover = nil;

    }];

    

    // 1.删除阴影

//    [self.cover removeFromSuperview];

//    self.cover = nil;

    

    // 2.恢复头像原来的位置

//    [UIView beginAnimations:nil context:nil];

//    [UIView setAnimationDuration:1.0];

//    [UIView setAnimationDelegate:self];

//    [UIView setAnimationDidStopSelector:@selector(removeCover)];

//    [UIView commitAnimations];

}

//- (void)removeCover

//{

//    [self.cover removeFromSuperview];

//    self.cover = nil;

//}

 

 

 

 

动画镶嵌

- (IBAction)download:(UIButton *)btn {

    // 1.让按钮失效(文字变为"已下载")

    btn.enabled = NO;

    

    // 2.显示下载成功的信息("成功下载xxx")

    UILabel *label = [[UILabel alloc] init];

    label.text = [NSString stringWithFormat:@"成功下载%@", self.app.name];

    label.font = [UIFont systemFontOfSize:12];

    label.textAlignment = NSTextAlignmentCenter;

    label.textColor = [UIColor whiteColor];

    label.backgroundColor = [UIColor blackColor];

    label.frame = CGRectMake(0, 0, 150, 25);

    label.center = CGPointMake(160, 240);

    label.alpha = 0.0;

    

    // 巧妙利用控件的尺寸和圆角半径,能产生一个圆

    label.layer.cornerRadius = 5;

    // 超出主层边界的内容统统剪掉

//    label.layer.masksToBounds = YES;

    label.clipsToBounds = YES;

    

    [self.superview addSubview:label];

    

    // 3.动画

    [UIView animateWithDuration:1.0 animations:^{

        label.alpha = 0.5;

    } completion:^(BOOL finished) {

        [UIView animateWithDuration:1.0 delay:1.0 options:UIViewAnimationOptionCurveLinear animations:^{

            label.alpha = 0.0;

        } completion:^(BOOL finished) {

            [label removeFromSuperview];

        }];

    }];

}