• 常见的动画效果


       UIViewAnimationOptionTransitionFlipFromLeft 向左旋转

       UIViewAnimationOptionTransitionCurlUp 翻页效果

       UIViewAnimationOptionShowHideTransitionViews 是的FromView 不会被销毁

       FromView 一旦转场完成之后FromView 会被销毁掉

     转场动画效果

        [UIView transitionFromView:self.greenView toView:self.redView duration:2 options:UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionShowHideTransitionViews completion:nil];

    -----------------------------

        1.平移(参考点不变)

        //不能执行累加效果的屏幕

       self.greenView.transform = CGAffineTransformMakeTranslation(-100, 0);

       可以进行累加的,平移(参考点随之变化而变化)

        self.greenView.transform = CGAffineTransformTranslate(self.greenView.transform, 100, 0);

       2.放大缩小

        self.greenView.transform = CGAffineTransformMakeScale(1.5, 1.5);

        self.greenView.transform =  CGAffineTransformScale(self.greenView.transform, 1.5, 1.5);

       3.旋转

        //180M_PI 90 M_PI_2 45 M_PI_4

       self.greenView.transform = CGAffineTransformMakeRotation(M_PI_4);

       self.greenView.transform = CGAffineTransformRotate(self.greenView.transform, M_PI_4);

    -----------------------------

    1.改变Frame的Y值

       如果想要改变一个视图的Frame中某一个具体的值,不能够使用直接赋值的方式

       self.ballButton.frame.origin.y += 200;

        1.要获得视图的Frame,然后整体修改最后赋值

        (NSTimeInterval) 动画效果持续的时间

        [UIView animateWithDuration:2

                         animations:^{

                      //要执行的具体渐变属性

         CGRect rect = self.ballButton.frame;

         rect.origin.y += 200;

         self.ballButton.frame = rect;

        }];

    -----------------------------   

    [UIView animateWithDuration:2 animations:^{

            

            CGRect rect = self.ballButton.frame;

            rect.origin.y += 200;

            self.ballButton.frame = rect;

            

        } completion:^(BOOL finished) {

            

            //动画效果执行完成之后,要执行什么样的逻辑

            NSLog(@"动画效果执行完成");

            

            CGRect rect = self.ballButton.frame;

            rect.origin.y -= 200;

            self.ballButton.frame = rect;

            //动画效果是可以嵌套

      [UIView animateWithDuration:2 animations:^{

                

                CGRect rect = self.ballButton.frame;

                rect.origin.y -= 200;

                self.ballButton.frame = rect;

                

      //alpha 是用来控制,视图的透明度 完全不透明1 完全透明0

                self.ballButton.alpha = 0.5;

                

            }];

            

        }];

     

    -----------------------------

       (NSTimeInterval) 事件

        delay 延迟多长事件开始执行动画效果

        UIViewAnimationOptions 执行一些默认的渐变动画效果

        UIViewAnimationOptionAutoreverse 执行回路,按照原来的路径回去,但最终回路执行完毕之后,会定在最终结束的位置

        UIViewAnimationOptionRepeat 重复执行动画效果

        UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse 组合起来就可以完成钟摆效果

        UIViewAnimationOptionCurveEaseIn 由慢到快

        UIViewAnimationOptionCurveEaseOut 由快到慢

        UIViewAnimationOptionCurveLinear 匀速效果

        

       [UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{

            

            CGRect rect = self.ballButton.frame;

            rect.origin.y += 400;

            self.ballButton.frame = rect;

            

        } completion:^(BOOL finished) {

            

        }];

        

  • 相关阅读:
    intellij idea 为JavaEE项目建立Servlet
    DNS无响应
    取消Gridvie中button的焦点
    android.os.NetworkOnMainThreadException
    java.net.MalformedURLException: Protocol not found:
    Failure [INSTALL_FAILED_OLDER_SDK]
    android library projects cannot be launched
    CDQ分治的嵌套
    CDQ分治入门
    最远 Manhattan 距离
  • 原文地址:https://www.cnblogs.com/CLiOS/p/5281004.html
Copyright © 2020-2023  润新知