- (void)viewDidLoad

{

[super viewDidLoad];

// 如果一个控制是另外一个控件的子控件, 那么这个控件中的layer也是另外一个控件的子layer

//     NSLog(@"star - %@", self.view.layer.sublayers);

CALayer *layer = [CALayer layer];

layer.backgroundColor = [UIColor redColor].CGColor;

layer.bounds = CGRectMake(0, 0, 100, 100);

//    layer.position = CGPointMake(200, 200);

//    layer.contents = (id)[UIImage imageNamed:@"me"].CGImage;

[self.view.layer addSublayer:layer];

}

- (void)test

{

NSLog(@"star - %@", self.view.layer.sublayers);

// 1.创建layer

// CALayer *layer = [[CALayer alloc] init];

CALayer *layer = [CALayer layer];

layer.backgroundColor = [UIColor redColor].CGColor;

layer.bounds = CGRectMake(0, 0, 100, 100);

layer.position = CGPointMake(200, 200);

layer.borderWidth = 10;

layer.cornerRadius = 10;

// 将layer添加在界面上

[self.view.layer addSublayer:layer];

//    NSLog(@"%@", layer.superlayer); // 获取layer的父视图

NSLog(@"end - %@", self.view.layer.sublayers);

//

//    UIView *view = [[UIView alloc] init];

//    view.superview;

//    view.subviews;

//    [self.view addSubview:view];

}

- (void)viewDidLoad {

[super viewDidLoad];

//    设置layer边框

self.imageView.layer.borderWidth = 10;

//    设置边框的颜色

self.imageView.layer.borderColor = [UIColor redColor].CGColor;//注意borderColor的类型

//    设置layer的圆角(设置主图层的圆角)

self.imageView.layer.cornerRadius = 10;

//    设置超出主图层的部分进行剪切操作

//    self.imageView.layer.masksToBounds = YES;

//    self.imageView.clipsToBounds = YES;

//    设置的image不是展示在主图层上的,是展示在子图层上的

self.imageView.layer.contents = (id)[UIImage imageNamed:@"LoginScreen"].CGImage;

//    设置阴影的颜色

self.imageView.layer.shadowColor  = [UIColor blackColor].CGColor;

//    设置阴影的偏移位

//    如果是正数,代表向右移动

//    上

self.imageView.layer.shadowOffset =  CGSizeMake(10, 10);

//    设置阴影的透明度0~1 1 完全不透明 0 完全透明

self.imageView.layer.shadowOpacity =1;

}

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

{

//    self.imageView.transform = CGAffineTransformMakeTranslation(0, 100);

//    self.imageView.layer.transform = CATransform3DMakeTranslation(0, 100, 0);

//    NSValue *v = [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, -200, 0)];

//    [self.imageView.layer setValue:v forKey:@"transform"];

//    [self.imageView.layer setValue:@(100) forKey:@"transform.translation.x"];

//    self.imageView.transform = CGAffineTransformMakeRotationxx(M_PI_4);

//    self.imageView.layer.transform = CATransform3DMakeRotation(M_PI_4, 0, 0, 1);

[self.imageView.layer setValue:@"100" forKey:@"transform.translation.x"];

}

转载于:https://www.cnblogs.com/LennyKwok/p/4339606.html

CALayer 新建相关推荐

  1. iOS开发UI篇—CALayer简介

    iOS开发UI篇-CALayer简介 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实UI ...

  2. iOS开发之CALayer

    1.概述 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView,其实UIView之所以能显示在屏幕上,完全是因为它内 ...

  3. drawRect与CALayer

    setNeedsDisplay会调用(drawRect)方便绘图和setNeedsLayout会调用(layoutSubViews)方便出来数据 UIView的setNeedsDisplay和setN ...

  4. UI一揽子计划 23 (动画的使用场景、UIView动画、CGAffineTransform2D仿射变换、CALayer、CAAnimation、)

    在iOS 中的动画是指一些视图上的过渡效果,合理利用动画能提高用户体验. 一. UIView动画 1). UIView动画块的使用 ([UIView beginAnimations: nil cont ...

  5. 使用idea新建maven工程的web项目的步骤

    1 新建maven项目,配置好目录结构 2 配置tomcat 先打开项目配置 配置访问目录 3 再配置tomcat,配置热更新,首页访问路径 配置tomcat 最后选择首页访问路径(注意:这部不配置的 ...

  6. 使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目

    使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目 一:创建项目,并添加相应依赖 新建Project,并指定Project为Spring Initializr ...

  7. 【Vue】新建一个Vue3项目

    目录 1.新建vue项目 2.路径更改至新建的vue项目处 3.安装cnpm 4.cnpm安装vant3 5.安装babel-plugin 6.安装vue路由 7.安装axios 其他注意事项 仅用于 ...

  8. MySQL新建数据库+用Navicat查看MySQL的方法

    MySQL新建数据库 数据库启动有问题的,见本人另外一篇博客:启动MySQL:net start mysql出现问题+本地Mysql忘记密码的修改方法 目前的用户名和密码都是root(因为好记!) 打 ...

  9. AndroidStudio 新建不同的Drawable文件夹

    以前习惯eclipse开发Android的朋友们知道 新创建一个Android项目的时候eclipse会自动生成多个drawable文件夹来存放图片 但是Android Studio 新建项目的时候只 ...

  10. 管理员技术(六): 硬盘分区及格式化、 新建一个逻辑卷、调整现有磁盘的分区、扩展逻辑卷的大小、添加一个swap分区...

    一.硬盘分区及格式化 问题: 本例要求熟悉硬盘分区结构,使用fdisk分区工具在磁盘 /dev/vdb 上按以下要求建立分区: 1> 采用默认的 msdos 分区模式         2> ...

最新文章

  1. Keras框架下的保存模型和加载模型
  2. 如何取消linux响铃_linux初学者入门:VIM编辑简易指南(常用操作)
  3. 怎样向IT行业的朋友说明《圣经》的重要性
  4. MySQL bin-log 日志清理方式
  5. HTTP和HTTPS总结
  6. mysql查询今天_昨天_7天_近30天_本月_上一月 数据_mysql查询今天、昨天、7天、近30天、本月、上一月 数据...
  7. 分子动力学模拟软件_机器学习模拟1亿原子:中美团队获2020「超算诺贝尔奖」戈登贝尔奖...
  8. 两年盗取 1000 万美元的 Xbox 礼品卡,这个人竟然是“内鬼”!
  9. 计算机系统配置有几方面要求,台式电脑安装win10系统配置要求有哪些
  10. LayoutInflater原理分析
  11. Python爬取京东图书销量榜
  12. 测试模板:Showcase规范和流程
  13. 使用easywechat调用微信支付
  14. 11个值得珍藏的4K高清壁纸网站推荐
  15. 刷脸支付在流量金贵时代把控千万用户
  16. POJ(8463)-----Stupid cat Doge(openjudge)
  17. 在 IIS 上构建静态网站
  18. 如何压缩PDF文件?教你两种压缩文件的方法
  19. devexpress gridview代码设置
  20. 【已解决】如何做excel表的下拉框多选

热门文章

  1. 编译OpenJDK8:configure error /usr/lib64/ccache/gcc is a symbolic link to ccache
  2. 包装应由厂家回收利用
  3. angular发布代码有缓存_[译文]RxJS缓存进阶
  4. c语言开发调试环境搭建_Linux搭建C++开发调试环境
  5. oracle 日志解析工具,Oracle logminer 日志分析工具使用
  6. Bootstrap相关优质项目推荐
  7. Netty 长连接服务
  8. 杭电2098--分拆素数和
  9. CSS 相邻选择器(七)
  10. 使用MEMCACHED的思考