OObjective-c CALayer 动画

ViewController.m文件

//
//  ViewController.m
//  动画
//
//  Created by DC017 on 15/12/22.
//  Copyright © 2015年 DC017. All rights reserved.
//

#import "ViewController.h"
//宏定义
#define W [UIScreen mainScreen].bounds.size.width
#define H [UIScreen mainScreen].bounds.size.height
#define YANSE(r,g,b,a) [UIColor colorWithRed:r/225.0 green:g/225.0 blue:b/225.0 alpha:a]
//设置layer的宽和高
#define LayerWidth 50

@interface ViewController (){
    CALayer * layer1;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    
    layer1=[[CALayer alloc]init];
    //设置宽度
    layer1.bounds=CGRectMake(0, 0, LayerWidth, LayerWidth);
    //设置中心点的位置
    layer1.position=CGPointMake(W/2, H/2);
    //设置背景颜色
    layer1.backgroundColor=YANSE(144, 80, 122, 1).CGColor;
    //添加
    [self.view.layer addSublayer:layer1];
    //设置圆角
    layer1.cornerRadius=LayerWidth/2;
    
    //设置阴影
    //设置阴影颜色
    layer1.shadowColor=[UIColor grayColor].CGColor;
    layer1.shadowOffset=CGSizeMake(2, 2);
    layer1.shadowOpacity=0.8;//设置透明度
    
    //描点(x,y  范围都是0-1)
//    layer1.anchorPoint=CGPointMake(1, 1);
    
    NSLog(@"%@",layer1);
    
   
}
-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
    //获取点击位置
    UITouch * touch=[touches anyObject];
    //打印点击位置
    NSLog(@"点击位置是:%@", NSStringFromCGPoint([touch locationInView:self.view]));
    //打印layer的对象地址
    NSLog(@"%@",self.view.layer.sublayers);
    //获取对象
    CALayer * layer2=self.view.layer.sublayers[2];
    //将layer移到点击位置
    //点击位置通过locationInView来获取
    layer2.position=[touch locationInView:self.view];
    
    //放大
    CGFloat width=layer2.bounds.size.width;
    
    if (width==LayerWidth) {
        width=LayerWidth*4;
    }else{
        width=LayerWidth;
    }
    layer2.bounds=CGRectMake(0, 0, width, width);
    layer2.cornerRadius=width/2;//圆角是根据当前图形宽度来设置
    
    
    
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


你可能感兴趣的:(OObjective-c CALayer 动画)