iOS 动画
2015-11-19 21:21
441 查看
实现动画的方法:
首尾式动画,不容易监听动画完成时间,而且不容易实现动画嵌套
label.alpha = 0.0;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
label.alpha = 1.0;
[UIView commitAnimations];
在应用程序管理这个小应用中,当点击下载按钮时,需要label的alpha值从0.0
到1.0,然后再从1.0到0.0,显然首尾式动画并不能满足要求。
然后我想到用这个方法(这个方法仍然无法实现):
[UIView animateWithDuration:1 animations:^{
NSLog(@"我(label)的alpha值变成了1啦");
label.alpha = 1;
}];
[UIView animateWithDuration:1 animations:^{
NSLog(@"我(label)的alpha值变成了0啦");
label.alpha = 0;
[label removeFromSuperview];
}];
首先执行上面的动画,然而上面的动画还没有开始执行的时候,下面的动画已
经开始执行了,因为程序并不是等到上一个动画执行完后才开始执行下面的动
画,所以当我们还没看到动画执行,这个label就已经被删除了([label
removeFromSuperview];)。
然后开始采用下面的一种方法:
[UIView animateWithDuration:1 animations:^{
NSLog(@"开始执行动画");
label.alpha = 1.0;
} completion:^(BOOL finished) {
[UIView animateWithDuration:1 animations:^{
NSLog(@"我(label)的alpha值又变成0.0啦");
label.alpha = 0.0;
} completion:^(BOOL finished) {
NSLog(@"动画完成,删除label");
[label removeFromSuperview];
}];
}];
NSLog(@"------------");
我尝试着去打印输出,输出结果如下:
![](https://img-blog.csdn.net/20151119212249874?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
虽然这种方法可行,但是,目前,我还不知道为什么是这样!等以后知道了,再补充说明
首尾式动画,不容易监听动画完成时间,而且不容易实现动画嵌套
label.alpha = 0.0;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
label.alpha = 1.0;
[UIView commitAnimations];
在应用程序管理这个小应用中,当点击下载按钮时,需要label的alpha值从0.0
到1.0,然后再从1.0到0.0,显然首尾式动画并不能满足要求。
然后我想到用这个方法(这个方法仍然无法实现):
[UIView animateWithDuration:1 animations:^{
NSLog(@"我(label)的alpha值变成了1啦");
label.alpha = 1;
}];
[UIView animateWithDuration:1 animations:^{
NSLog(@"我(label)的alpha值变成了0啦");
label.alpha = 0;
[label removeFromSuperview];
}];
首先执行上面的动画,然而上面的动画还没有开始执行的时候,下面的动画已
经开始执行了,因为程序并不是等到上一个动画执行完后才开始执行下面的动
画,所以当我们还没看到动画执行,这个label就已经被删除了([label
removeFromSuperview];)。
然后开始采用下面的一种方法:
[UIView animateWithDuration:1 animations:^{
NSLog(@"开始执行动画");
label.alpha = 1.0;
} completion:^(BOOL finished) {
[UIView animateWithDuration:1 animations:^{
NSLog(@"我(label)的alpha值又变成0.0啦");
label.alpha = 0.0;
} completion:^(BOOL finished) {
NSLog(@"动画完成,删除label");
[label removeFromSuperview];
}];
}];
NSLog(@"------------");
我尝试着去打印输出,输出结果如下:
虽然这种方法可行,但是,目前,我还不知道为什么是这样!等以后知道了,再补充说明
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Gifski:一个跨平台的高质量 GIF 编码器
- 模仿动画的放大缩小容器
- Android中ViewFlipper的使用及设置动画效果实例详解
- jQuery实现美观的多级动画效果菜单代码
- php判断GIF图片是否为动画的方法
- jQuery实现动画效果circle实例
- 浅析JavaScript动画
- js排序动画模拟-插入排序
- javascript+HTML5的Canvas实现Lab单车动画效果
- 基于javascript实现漂亮的页面过渡动画效果附源码下载
- js实现按钮颜色渐变动画效果
- jQuery实现连续动画效果实例分析
- jQuery实现带有洗牌效果的动画分页实例