zoukankan      html  css  js  c++  java
  • UI进阶--隐式动画

    隐式动画:直接改变属性就会有动画效果,非根层才有隐式动画,根层是没有隐式动画的。
    根层与非根层:
    控件的layer属性是根层
    控件的layer属性的子层就是非根层
    隐藏动画的禁止:

    1  [CATransaction begin];
    2  [CATransaction setDisableActions:YES];
    3  //设置隐式动画动画时间
    4   self.myview.layer.position = CGPointMake(10, 10);
    5  [CATransaction commit];
    6  

    布局:

    示例代码:

     1 //
     2 //  ViewController.m
     3 //  ImplicitAnimation
     4 //
     5 //  Created by xiaomoge on 15-1-5.
     6 //  Copyright (c) 2015年 xiaomoge. All rights reserved.
     7 //
     8 
     9 #import "ViewController.h"
    10 
    11 @interface ViewController ()
    12 @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    13 @property (weak, nonatomic) CALayer *layer;//非根层
    14 
    15 @end
    16 
    17 @implementation ViewController
    18 
    19 - (void)viewDidLoad {
    20     [super viewDidLoad];
    21     //创建一个 非根层
    22     CALayer *layer = [CALayer layer];
    23     //设置内容
    24     layer.contents = (id)[UIImage imageNamed:@"papa"].CGImage;
    25     //设置大小
    26     layer.bounds = CGRectMake(0, 0, 100, 100);
    27     
    28     //设置位置
    29     layer.position = CGPointMake(150, 250);
    30     
    31     //设置锚点
    32     layer.anchorPoint = CGPointMake(0.5, 0.5);
    33     
    34     [self.view.layer addSublayer:layer];
    35 
    36     self.layer = layer;
    37 }
    38 
    39 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    40     //隐藏动画
    41     
    42     //self.imageView.layer 它是根层
    43     //根层改变属性是没有动画,只有非根层改变属性就有默认的动画
    44     //设置根层的大小
    45     self.imageView.layer.bounds = CGRectMake(0, 0, 150, 150);
    46     
    47     //设置非根层的大小
    48     //想默认动画时间设置长一点
    49     
    50     [CATransaction begin];
    51     [CATransaction setDisableActions:YES];//关闭隐藏动画
    52     [CATransaction setAnimationDuration:5];
    53     
    54     //transform旋转的动画效果
    55     //self.layer.bounds = CGRectMake(0, 0, 150, 150);
    56     self.layer.transform = CATransform3DMakeRotation(M_PI_4, 1, 1, 1);
    57     
    58     [CATransaction commit]; 
    59 }
    60 @end
  • 相关阅读:
    vagrant up报错 Warning: Authentication failure. Retrying...解决方案
    node读写Excel操作
    批量转换word为pdf
    分享7个shell脚本实例--shell脚本练习必备
    shell脚本实例,通向shell脚本大师的必经之路
    前端优化DNS预解析
    如何选择开源协议
    深入理解document.referrer的用法
    使用 WebRTC 构建简单的前端视频通讯
    深入理解WebRTC
  • 原文地址:https://www.cnblogs.com/xiaomoge/p/4204930.html
Copyright © 2011-2022 走看看