美文网首页
CALayer、layer隐式动画

CALayer、layer隐式动画

作者: 晶宝的小花园 | 来源:发表于2017-02-10 18:34 被阅读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

```

相关文章

  • CALayer、layer隐式动画

    ``` #import "ViewController.h" #define originalWidth 100 ...

  • iOS CALayer动画

    隐式动画 什么是隐式动画? 每一个UIView内部都默认有着一个CALayer,称之为Root Layer(根层)...

  • iOS动画基础一

    核心动画 Demo下载地址 隐式动画:View.alpha layer.opacity CALayer中的三棵树 ...

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

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

  • CoreAnimation 理解

    隐式动画的理解: 1,layer层的动画都伴随着一个隐式动画(默认0.25秒的动画,例子:通过layer 层更改一...

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

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

  • iOS-CALayer (四)

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

  • 02.5-CALayer和CATransform3D

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

  • CALayer 和 CAAnimation

    Layer Layer可以绘制的动画动画类型 CALayer position 和 anchorpoint Lay...

  • iOS 动起来

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

网友评论

      本文标题:CALayer、layer隐式动画

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