博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[UIView beginAnimations:context:]与[UIView animateWithDuration:animations:]值得注意的一个区别...
阅读量:6930 次
发布时间:2019-06-27

本文共 1535 字,大约阅读时间需要 5 分钟。

原文链接:

看过官方文档的都知道,官方推荐在iOS4以后使用[UIView animateWithDuration:animations:],而不是原来的[UIView beginAnimations:context:],来完成动画,虽然二者功能几乎完全相同,但使用前者在一些情况下会方便不少,这些内容可以参考官方文档View Programming Guide For iOS的Animation一节.
二者有一个值得新手注意的区别就是[UIView animateWithDuration:animations:]默认会禁止触摸,手势等的响应,这可以通过设置option选项来解决(直接引用StackOverFlow的一段了):

[cpp] 
  1. UIViewAnimationOptions options = UIViewAnimationCurveLinear | UIViewAnimationOptionAllowUserInteraction;  
  2.    
  3. [UIView animateWithDuration:0.2 delay:0.0 options:options animations:^  
  4.  {  
  5.      highlightView.alpha = 1.0;  
  6.    
  7.  } completion:nil];  

就是这么一点事儿,害我走了不少弯路(我也是新手哈),在这里写一下,提示一下有可能遇到同样问题的人.

 

[cpp] 
  1. [UIView animateWithDuration:duration  
  2.                           delay:0.0  
  3.                         options:UIViewAnimationCurveEaseInOut //设置动画类型  
  4.                      animations:^{  
  5.                          //开始动画  
  6.                          [self updateArrowBtnTitle:YES];  
  7.                          rotateView.transform = CGAffineTransformMakeRotation((stickToDegrees/180)*M_PI);  
  8.                      }  
  9.                      completion:^(BOOL finished){  
  10.                          // 动画结束时的处理  
  11.                      }];  

 

[UIView animateWithDuration:] 方法仅支持ios4.0及以上版本。如果要兼容以前的版本的话,还是需要使用 [UIView beginAnimation:] 方法

[cpp] 
    1. [UIView beginAnimations:nil context:nil];  
    2.     // fade out  
    3.     helpImageBtn.alpha = 0.0f;  
    4.     // set animation did stop selector  
    5.     [UIView setAnimationDelegate:self];  
    6.     [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];  
    7.     [UIView commitAnimations];  
    8.   
    9.    - (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {  
    10.     if (self.retainedHelpImageBtn.superview) //先判断父视图再执行视图移除  
    11.         [self.retainedHelpImageBtn removeFromSuperview];  
    12.    }  

o_qrcode_for_gh_96c5e991bd62_430.jpg

本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3494468.html,如需转载请自行联系原作者
你可能感兴趣的文章
Jenkins配置手动发版
查看>>
横向图片轮播(如果一个项目里面只需用这一次,可以用这个插件,多次则不建议使用)...
查看>>
计算机存储单位KB,MB,GB,TB,PB,EB,ZB,YB后面是什么?
查看>>
python 基础笔记十九 - 面向对象
查看>>
Linux安全之——Ubuntu的iptable命令使用
查看>>
entOS7查看开放端口命令
查看>>
操作系统位数
查看>>
关于call()的this指向研究
查看>>
.NET 人工智能相关资料整理
查看>>
【机器学习】--鲁棒性调优之L1正则,L2正则
查看>>
selenium+ChromeOptions登录北京市住房公积金
查看>>
Codeforces Round #316 (Div. 2A) 570A Elections
查看>>
.CBB 文件 如何打开
查看>>
Python之抽象类、抽象方法
查看>>
maven默认本地仓库目录
查看>>
Memcached、Redis OR Tair
查看>>
将DataTable中的数据导入到数据库中
查看>>
DataView没有使用New来初始化的后果
查看>>
累了。。。。。。
查看>>
复制图片路径到剪切板(兼容各个浏览器)
查看>>