• 简易动画两种执行方式


    简易动画大致有2种方式:

    头尾式

    [UIView beginAnimations:nil context:nil];
    /** 需要执行动画的代码 **/
    [UIView commitAnimations];

    Block式

    [UIView animateWithDuration:0.5 animations:^{
        /** 需要执行动画的代码 **/
    }];

    官方推荐在iOS4以后使用[UIView animateWithDuration:animations:],而不是原来的[UIView beginAnimations:context:],来完成动画,虽然二者功能几乎完全相同,但使用前者在一些情况下会方便不少,这些内容可以参考官方文档View Programming Guide For iOS的Animation一节.

    二者有一个值得新手注意的区别就是[UIView animateWithDuration:animations:]默认会禁止触摸,手势等的响应,这可以通过设置option选项来解决(直接引用StackOverFlow的一段了):

    UIViewAnimationOptions options = UIViewAnimationCurveLinear | UIViewAnimationOptionAllowUserInteraction;
    
    [UIView animateWithDuration:0.2 delay:0.0 options:options animations:^
     {
         highlightView.alpha = 1.0;
    
     } completion:nil];

    UIView有两个方法,+beginAnimations:context:和+commitAnimations,和CATransaction的+begin和+commit方法类似。实际上在+beginAnimations:context:和+commitAnimations之间所有视图或者图层属性的改变而做的动画都是由于设置了CATransaction的原因。

    在iOS4中,苹果对UIView添加了一种基于block的动画方法:+animateWithDuration:animations:。这样写对做一堆的属性动画在语法上会更加简单,但实质上它们都是在做同样的事情。

    CATransaction的+begin和+commit方法在+animateWithDuration:animations:内部自动调用,这样block中所有属性的改变都会被事务所包含。这样也可以避免开发者由于对+begin和+commit匹配的失误造成的风险。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    2022年9月3日
    2022年8月28日
    2022年9月8日
    2022年9月6日
    2022年8月30日
    2022年9月5日
    2022年9月感悟
    《伯恩斯焦虑自助疗法》读书笔记3
    神经网络与深度学习(邱锡鹏)编程练习 2 线性回归 参数优化 不同基函数实现
    神经网络与深度学习(邱锡鹏)编程练习 1 实验
  • 原文地址:https://www.cnblogs.com/H7N9/p/4888837.html
Copyright © 2020-2023  润新知