CAlayer一
//
// ViewController.m
// Layer
//
// Created by City--Online on 15/4/9.
// Copyright (c) 2015年 City--Online. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *btn=[UIButton buttonWithType:UIButtonTypeSystem];
btn.frame=CGRectMake(150, 250, 50, 80);
[btn setTitle:@"按钮" forState:UIControlStateNormal];
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnclick:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
//图层属性
self.myview=[[UIView alloc]init];
self.myview.frame=CGRectMake(100, 100, 100, 100);
//设置背景色
self.myview.layer.backgroundColor=[UIColor redColor].CGColor;
//设置边框宽度
self.myview.layer.borderWidth=5;
//设置圆角
self.myview.layer.cornerRadius=20;
//设置透明度
self.myview.layer.opacity=0.9;
//设置内容 id类型
self.myview.layer.contents=(id)[UIImage imageNamed:@"test.jpg"].CGImage;
//设置边框颜色
self.myview.layer.borderColor=[UIColor greenColor].CGColor;
//设置超过自图层的部分剪掉,否则设置圆角后contents中图片的四个角的部分还会显示出来 当设置此属性为yes时,阴影看不到
self.myview.layer.masksToBounds=YES;
//设置阴影颜色
self.myview.layer.shadowColor=[UIColor blackColor].CGColor;
// 设置阴影偏移量 width正往右 height正往下
self.myview.layer.shadowOffset=CGSizeMake(5, 15);
//设置阴影透明度 默认0
self.myview.layer.shadowOpacity=1.0;
[self.view addSubview:self.myview];
//图层创建
CALayer *calayer=[[CALayer alloc]init];
// calayer.frame=CGRectMake(220, 100, 100, 100);
calayer.bounds=CGRectMake(0, 0, 100, 100);
calayer.position=CGPointMake(260, 150);
calayer.backgroundColor=[UIColor redColor].CGColor;
calayer.contents=(id)[UIImage imageNamed:@"test.jpg"].CGImage;
calayer.masksToBounds=YES;
calayer.cornerRadius=20;
calayer.borderWidth=5;
[self.view.layer addSublayer:calayer];
}
-(void)btnclick:(id)sender
{
//有时候UIView和CALayer都能解决同样的问题,UIView和CAlayer用什么比较好?
//UIView继承UIResponder,可以响应用户事件,CAlayer的话是没继承UIResponder,没有响应,CAlayer是轻量的
//2d旋转变化
// self.myview.transform=CGAffineTransformMakeTranslation(100, 100);//UIView变化
// self.myview.layer.affineTransform=CGAffineTransformMakeTranslation(100, 100);//clayer变换
//
// self.myview.layer.transform=CATransform3DMakeScale(2,2,0);//缩放
// self.myview.layer.transform=CATransform3DMakeTranslation(20,20,0);//平移
// self.myview.layer.transform=CATransform3DMakeRotation(3.1415926, 1, 1, 0.5);//旋转
//kvox 设置
NSValue *v=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(100, 20, 0)];
[self.myview.layer setValue:v forKeyPath:@"transform"];
// 如果是只需要设置在某一个方向上的移动,可以参考下面的代码
// [self.myview.layer setValue:@(-100) forKeyPath:@"transform.translation.x"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
CAlayer一的更多相关文章
- CALayer基本介绍与常见属性
属性框架:QuartzCore CA: CoreAnimation -> 核心动画,所有的核心动画都是添加给layer的! 与UIView的区别: 1.layer负责内容的展示,不接受任何用户交 ...
- iOS CALayer应用详解(2)
参考博客:http://blog.csdn.net/hello_hwc?viewmode=list 如果你对CALayer 还没有一个清晰的理解,欢迎看一下前面的博客: http://www.cnbl ...
- iOS CALayer应用详解
跟着大神一起进步,本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=contents 一 CALayer是什么? Layers是绘图和动画的基础, L ...
- iOS开发UI篇—CAlayer(自定义layer)
iOS开发UI篇—CAlayer(自定义layer) 一.第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的Draw ...
- iOS开发UI篇—CAlayer层的属性
iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- iOS开发UI篇—CAlayer(创建图层)
iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控 ...
- iOS开发UI篇—CALayer简介
iOS开发UI篇—CALayer简介 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实 ...
- CALayer 4 详解 -----转自李明杰
CALayer4-自定义层 本文目录 一.自定义层的方法1 二.自定义层的方法2 三.其他 自定义层,其实就是在层上绘图,一共有2种方法,下面详细介绍一下. 回到顶部 一.自定义层的方法1 方法描 ...
- CALayer 3 详解 -----转自李明杰
CALayer3-层的属性 本文目录 一.隐式动画属性 二.position和anchorPoint 回到顶部 一.隐式动画属性 * 在前面几讲中已经提到,每一个UIView内部都默认关联着一个C ...
- CALayer 2 详解 -----转自李明杰
CALayer2-创建新的层 本文目录 一.添加一个简单的图层 二.添加一个显示图片的图层 三.为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UICol ...
随机推荐
- r test
rt <-read.table("C:/Users/Ju/Desktop/anova/anova.txt",head=TRUE) lm.sol <-lm(Y~X1+X2 ...
- Facebook内部报告:争取青少年用户的鸡贼小技巧
翻译:吴祺深 欢迎访问网易云社区,了解更多网易技术产品运营经验. 去年十月,Facebook收购了TBH,最后却关闭了这款APP,不过一则内部报告透露了,通过这款流行的投票APP,这家公司学会了如何去 ...
- java servlet编写验证码
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffere ...
- 23_pikle/shevel/json
一.序列化 存储数据或者传输数据时,需要把对象进行处理,把对象处理成方便存储和传输的数据格式.不同的序列化,结果也不同. 序列化方式: (1) pickle 可以将 ...
- df换行问题解决
df换行问题解决 df是linux下用来查磁盘空间的命令,而在使用了LVM分区或网络挂载的情况下,再用df取分区的使用率时,发现有些分区显示换行了,这样会导致通过脚本取的数据不对. [root@ ]# ...
- 关于OC中的几种延迟执行方式
第一种: [UIView animateWithDuration: delay: options: animations:^{ self.btn.transform = CGAffineTransfo ...
- (转)python高级FTP
原文地址:http://www.itnose.net/detail/6754889.html高级FTP服务器1. 用户加密认证2. 多用户同时登陆3. 每个用户有自己的家目录且只能访问自己的家目录4. ...
- .Net 鉴权授权
在这里总结一下工作中遇到的鉴权和授权的方法 ① 固定token的方案 通过在nginx或者代码中写死token,或者通过在限制外网访问的方式已来达到安全授权的方式 ② session方案 分布式会话方 ...
- C++中:默认构造函数、析构函数、拷贝构造函数和赋值函数——转
对于一个空类,编译器默认产生4个成员函数:默认构造函数.析构函数.拷贝构造函数和赋值函数.1.构造函数:构造函数是一种特殊的类成员,是当创建一个类的时候,它被调用来对类的数据成员进行初始化和分配内存. ...
- Qt中QMenu的菜单关闭处理方法
Qt中qmenu的实现三四千行... 当初有个特殊的需求, 要求菜单的周边带几个像素的阴影, 琢磨了半天, 用QMenu做不来, 就干脆自己用窗口写一个 然而怎么让菜单消失却非常麻烦 1. 点击菜单项 ...