美文网首页
CALayer 隐式动画

CALayer 隐式动画

作者: 晶宝的小花园 | 来源:发表于2017-02-17 11:40 被阅读0次
#import "ViewController.h"

#define originalWidth 100

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIView *redView;

@property(strong,nonatomic) CALayer* layer;

@end

@implementation ViewController

- (void)viewDidLoad {   

 [super viewDidLoad];      

  /*self.redView.layer.borderWidth = 10; 

   self.redView.layer.borderColor = [UIColor greenColor].CGColor;           

 //阴影    

self.redView.layer.shadowOffset = CGSizeMake(10, -10);    self.redView.layer.shadowColor = [UIColor grayColor].CGColor;    self.redView.layer.shadowOpacity = 0.7;       

 //圆角半径    

self.redView.layer.cornerRadius = 15;       

 self.redView.layer.contents = (id)[UIImage imageNamed:@"0.jpg"].CGImage;//.CGImage很重要        

//裁剪边角    

//self.redView.clipsToBounds = YES;    

//self.redView.layer.masksToBounds = YES;    //会把阴影也裁剪掉       

 //self.redView.layer.position = CGPointMake(0, 0);//position默认是中间那个点(默认锚点)所在的坐标,如果要把锚点改成左上角点:    

self.redView.layer.anchorPoint = CGPointMake(0, 0);//最大是(1,1)    self.redView.layer.position = CGPointMake(0, 0);*/      

CALayer* layer1 = [CALayer layer];  

 layer1.backgroundColor = [UIColor orangeColor].CGColor;  

  layer1.anchorPoint = CGPointMake(0, 0);   

layer1.position = CGPointMake(0, 0);   

 layer1.bounds = CGRectMake(0, 0, originalWidth, originalWidth);   

layer1.cornerRadius = originalWidth/2;       

[self.view.layer addSublayer:layer1];   

 self.layer = layer1;    }



-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event{

//self.redView.layer.position  = CGPointMake(10, 20);

//self.redView.layer.bounds = CGRectMake(0, 0, 100, 100);

//self.redView.layer.transform = CATransform3DTranslate(self.redView.layer.transform, 20, 20, 20);

//kvc设置属性:

//static int value = 20;

//value+= 20;

//[self.redView.layer setValue:[NSNumber numberWithInt:value] forKeyPath:@"transform.translation.x"];//平移

//[self.redView.layer setValue:[NSNumber numberWithDouble:1.2] forKeyPath:@"transform.scale.x"];



//放大self.layer

if (self.layer.bounds.size.width == originalWidth) {

static int newWidth = originalWidth*2;

self.layer.bounds = CGRectMake(0, 0, newWidth, newWidth);

self.layer.cornerRadius = newWidth/2;

}else{

//缩小layer

self.layer.bounds = CGRectMake(0, 0, originalWidth, originalWidth);

self.layer.cornerRadius = originalWidth/2;

}

}

@end

相关文章

  • 动画 (1) ----- CALayer

    CALayer 和 UIView 联系CALayer的相关属性CALayer之隐式动画 一. CALayer 和 ...

  • 隐式动画&显式动画 学习笔记

    隐式动画 CALayer的属性基本上都可以进行隐式动画 CATransaction可以控制隐式动画(执行时间或者关...

  • iOS-CALayer (四)

    上一篇 : iOS-CALayer (三) 前言:继续深入学习动画,主要从隐式动画、显式动画上车。 一、隐式动画 ...

  • 02.5-CALayer和CATransform3D

    一、CALayer 二、CATransform3D 三、UIView和CALayer的选择 四、CALayer的隐式动画

  • iOS 动起来

    CALayer UIView和CALayer之间的关系 CALayer 隐式属性动画的本质是这些属性的变动默认隐含...

  • iOS动画原理--隐式动画

    问题: 1.什么是隐式动画,为什么CALayer设置可动画属性时会触发隐式动画?2.UIView设置属性,为什么没...

  • [iOS] CoreAnimation 学习笔记

    CALayer 隐式动画 隐式动画:属性或内容变化时框架自带的动画效果,即不需要使用类似 UIView Anima...

  • iOS的Tips

    修改CALayer隐式动画的时长 [CATransaction begin];[CATransaction set...

  • iOS 动画

    一、CALayer CALayer很多属性在修改时都能形成动画效果(不需要借助动画类),这种属性称为“隐式动画属性...

  • ios 动画基础(一)

    每个UIView都有关联的CALayer对象,被称之为rootLayer。 隐式动画 隐式动画指我们没有指定任何动...

网友评论

      本文标题:CALayer 隐式动画

      本文链接:https://www.haomeiwen.com/subject/ndgkwttx.html