您的位置:首页 > 移动开发 > Objective-C

OObjective-c CALayer 动画

2015-12-22 00:00 573 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: