UIView动画下

简介:

#import "ViewController.h"
 
@interface ViewController ()
{
    UIButton *btn;
}
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
    btn=[UIButton buttonWithType:UIButtonTypeSystem];
    btn.frame=CGRectMake(30, 30, 50, 50);
    btn.backgroundColor=[UIColor redColor];
    [btn setTitle:@"按钮" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(btnclick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
     
}
//UIViewAnimationWithBlocks
-(void)btnclick:(id)sender
{
   // 此方法参数1:动画时长 参数2:修改的View的属性
    [UIView animateWithDuration:2 animations:^{
        btn.backgroundColor=[UIColor blackColor];
    }];
     
     
   //此方法参数1:动画时长 参数2:修改的View的属性 参数3:动画完成的回调
   [UIView animateWithDuration:3 animations:^{
       btn.backgroundColor=[UIColor redColor];
   } completion:^(BOOL finished) {
       NSLog(@"completion1");
   }];
   /* UIViewAnimationOptionLayoutSubviews //提交动画的时候布局子控件,表示子控件将和父控件一同动画。
     
    UIViewAnimationOptionAllowUserInteraction //动画时允许用户交流,比如触摸
     
    UIViewAnimationOptionBeginFromCurrentState //从当前状态开始动画
     
    UIViewAnimationOptionRepeat //动画无限重复
     
    UIViewAnimationOptionAutoreverse //执行动画回路,前提是设置动画无限重复
     
    UIViewAnimationOptionOverrideInheritedDuration //忽略外层动画嵌套的执行时间
     
    UIViewAnimationOptionOverrideInheritedCurve //忽略外层动画嵌套的时间变化曲线
     
    UIViewAnimationOptionAllowAnimatedContent //通过改变属性和重绘实现动画效果,如果key没有提交动画将使用快照
     
    UIViewAnimationOptionShowHideTransitionViews //用显隐的方式替代添加移除图层的动画效果
     
    UIViewAnimationOptionOverrideInheritedOptions //忽略嵌套继承的选项
     
    //时间函数曲线相关
     
    UIViewAnimationOptionCurveEaseInOut //时间曲线函数,由慢到快
     
    UIViewAnimationOptionCurveEaseIn //时间曲线函数,由慢到特别快
     
    UIViewAnimationOptionCurveEaseOut //时间曲线函数,由快到慢
     
    UIViewAnimationOptionCurveLinear //时间曲线函数,匀速
     
    //转场动画相关的
     
    UIViewAnimationOptionTransitionNone //无转场动画
     
    UIViewAnimationOptionTransitionFlipFromLeft //转场从左翻转
     
    UIViewAnimationOptionTransitionFlipFromRight //转场从右翻转
     
    UIViewAnimationOptionTransitionCurlUp //上卷转场
     
    UIViewAnimationOptionTransitionCurlDown //下卷转场
     
    UIViewAnimationOptionTransitionCrossDissolve //转场交叉消失
     
    UIViewAnimationOptionTransitionFlipFromTop //转场从上翻转
     
    UIViewAnimationOptionTransitionFlipFromBottom //转场从下翻转
    */
    //参数1 动画时长 参数2 延迟时间 参数3 枚举见上面注释 参数4 改变View属性 参数5 动画完成时回调
    [UIView animateKeyframesWithDuration:2 delay:2 options:UIViewKeyframeAnimationOptionBeginFromCurrentState animations:^{
          btn.backgroundColor=[UIColor greenColor];
            CGRect frame=btn.frame;
            if (frame.origin.x<self.view.frame.size.width-20) {
                frame.origin.x+=20;
            }
            else
            {
                frame.origin.x=0;
                 
            }
            btn.frame=frame;
    } completion:^(BOOL finished) {
        NSLog(@"completion2");
    }];
    //转场动画
    [UIView transitionFromView:self.view toView:btn duration:5 options:UIViewAnimationOptionTransitionCurlDown completion:^(BOOL finished) {
        NSLog(@"completion3");
    }];
   [UIView transitionWithView:self.view duration:5 options:UIViewAnimationOptionTransitionFlipFromBottom animations:^{
       btn.backgroundColor=[UIColor redColor];
   } completion:^(BOOL finished) {
       NSLog(@"completion4");
   }];
   
}
 
 
 
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
@end

相关文章
|
Java
Java 基本数据类型之间的运算规则
Java 基本数据类型之间的运算规则
114 0
|
JavaScript 前端开发 Java
面试题之垃圾回收
机制 标记清除 JS 中最常见的垃圾回收方式是标记清除 标记清除的概念也好理解,从根部出发看是否能达到某个对象,如果能达到则认定这个对象还被需要,如果无法达到,则释放它,这个过程大致分为三步:
面试题之垃圾回收
|
JavaScript 前端开发
JS(第二十四课)JS高级Es6语法
JS(第二十四课)JS高级Es6语法
152 0
|
计算机视觉
五、OpenCV绘制线、矩形、圆等基本几何形状
通过javaOpenCV中的Imgproc函数进行简单几何图形的绘制
185 0
五、OpenCV绘制线、矩形、圆等基本几何形状
|
分布式计算 资源调度 Hadoop
搭建Hadoop集群的HA高可用架构(超详细步骤+已验证)(二)
搭建Hadoop集群的HA高可用架构(超详细步骤+已验证)(二)
519 0
|
C语言
C语言及程序设计初步例程-25 用switch语句实现多分支结构
贺老师教学链接  C语言及程序设计初步 本课讲解 例:这是星期几? #include &lt;stdio.h&gt; int main() { int week; scanf("%d", &amp;week); switch(week) { case 0: printf("Sunday\n"); case 1: p
1140 0
|
BI OLAP
《BI项目笔记》用Excel2013连接和浏览OLAP多维数据集
原文:《BI项目笔记》用Excel2013连接和浏览OLAP多维数据集 用Excel2013连接和浏览OLAP多维数据集
1024 0