CALayer的mask属性
可以对图层按path进行指定裁剪
//#import "ViewController.h"
//
//@interface ViewController ()
//
//@end
//
//@implementation ViewController
//
//- (void)viewDidLoad {
//
// [super viewDidLoad];
//
// // 创建一个蓝色的Layer
// CALayer *foregroundLayer = [CALayer layer];
// foregroundLayer.bounds = CGRectMake(0, 0, 100, 100);
// foregroundLayer.backgroundColor = [UIColor redColor].CGColor;
//
// // 创建一个路径
// UIBezierPath *apath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20, 20, 60, 60)];
//
// // 创建maskLayer
// CAShapeLayer *maskLayer = [CAShapeLayer layer];
// maskLayer.path = apath.CGPath;
// maskLayer.fillColor = [UIColor greenColor].CGColor;
// maskLayer.fillRule = kCAFillRuleEvenOdd;
//
// // 设置位置
// foregroundLayer.position = self.view.center;
// // 设置mask
// foregroundLayer.mask = maskLayer;
//
// [self.view.layer addSublayer:foregroundLayer];
//
//}
//
//@end #import "ViewController.h" static CGFloat num; @interface ViewController () @property (nonatomic, strong) CAShapeLayer *circle;
@property (nonatomic, strong) CADisplayLink *link; @end @implementation ViewController @synthesize circle; - (void)viewDidLoad { [super viewDidLoad]; // //创建一个CAShape
// CALayer *bgLayer = [CALayer layer];
//
// //设置大小颜色和位置
// bgLayer.bounds = CGRectMake(0, 0, 200, 200);
// bgLayer.backgroundColor = [UIColor redColor].CGColor;
// bgLayer.position = self.view.center; CAGradientLayer *bgLayer = [CAGradientLayer layer];
bgLayer.bounds = CGRectMake(, , , );
bgLayer.position = self.view.center; bgLayer.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithRed: green:/255.0 blue:/255.0 alpha:1.0].CGColor,
(id)[UIColor colorWithRed: green:/255.0 blue:/255.0 alpha:1.0].CGColor,
(id)[UIColor whiteColor].CGColor, nil]; //创建一个CAShapeLayer作为MaskLayer
circle = [CAShapeLayer layer]; //设置路径
circle.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(, )
radius:
startAngle:
endAngle: * M_PI
clockwise:YES].CGPath;
// circle.lineWidth = 5;
// circle.fillColor = [UIColor greenColor].CGColor;
// circle.fillRule = kCAFillRuleEvenOdd; //设置maskLayer
bgLayer.mask = circle; [self.view.layer addSublayer:bgLayer]; //添加计时器 这个只是一个附加动画
//self.link = [CADisplayLink displayLinkWithTarget:self selector:@selector(action)];
//[self.link addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
} - (void)action { num ++; circle.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(, )
radius: + num
startAngle:
endAngle: * M_PI
clockwise:YES].CGPath; if (num > ) {
[self.link invalidate];
}
} @end
CALayer的mask属性的更多相关文章
- CALayer之mask属性-遮罩
CALayer有一个属性叫做mask. 这个属性本身就是个CALayer类型,有和其他图层一样的绘制和布局属性. 它类似于一个子图层,相对于父图层(即拥有该属性的图层)布局,但是它却不是一个普通的子图 ...
- 关于使用 CALayer 中 mask 的一些技巧
CALayer 拥有 mask 属性,Apple 的官方解释如下: An optional layer whose alpha channel is used to mask the layer’s ...
- 利用layer的mask属性实现逐渐揭示的动画效果
github上又看到个不错的动画(https://github.com/rounak/RJImageLoader),如图: 所以就想来自己实现以下 不试不知道,这个动画还真不是看上去那么简单,我自己想 ...
- iOS—Mask属性的使用
Mask属性介绍 Mask平时用的最多的是masksToBounds 吧. 其实除此以外Mask使用场景很多,看完之后你会发现好真是好用的不要不要的... 先来了解下Mask属性到底是什么? Mask ...
- iOS开发UI篇—CAlayer层的属性
iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- CAlayer层的属性
iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- Unity 摄像机Clear Flags和Culling Mask属性用途详解
原文地址:http://blog.csdn.net/tanmengwen/article/details/8798231 1.简述两个属性 1.1 Clear Flags 清除标记 每个相机在渲染时会 ...
- iOS开发——UI篇&文字渐变效果:图层中的mask属性
文字渐变效果:图层中的mask属性 本次文章,主要讲述的是图层中的mask属性,利用它,可以做出文字渐变效果! 一.文字渐变效果: 二.文字渐变实现思路: 1.创建一个颜色渐变层,渐变图层跟文字控件一 ...
- iOS开发UI 篇—CAlayer层的属性
一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设 ...
随机推荐
- spring-cloud eureka注册发现
idea新建一个eureka server服务 application.yml 配置: spring: application: name: eureka-server server: port: 7 ...
- 126、TensorFlow Session的执行
# tf.Session.run 方法是一个执行tf.Operation或者计算tf.Tensor的一个主要的机制 # 你可以传递一个或者多个tf.Operation或者tf.Tensor对象来给tf ...
- 理解JavaScript中的回调函数
理解回调函数,首先要知道在JavaScript中,函数也是对象,它可以赋值给变量,也可以作为参数传递给另一个函数.比如: var add=function(a,b){ console.log(a+b) ...
- redhat 修改yum源
问题现象: 现有的yum安装git失败,提示yum源连接失败 Error Downloading Packages: git--.el6_4..x86_64: failure: Packages/gi ...
- php面向对象三大特性
1.封装: 目的:使类更加安全 步骤:1.成员变量变成private(私有的)2.设置方法/调用方法3.在方法中增加限制 <?php class shao { private $aa;//必须是 ...
- 在Python中操作文件之truncate()方法的使用教程
在Python中操作文件之truncate()方法的使用教程 这篇文章主要介绍了在Python中操作文件之truncate()方法的使用教程,是Python入门学习中的基础知识,需要的朋友可以参考下 ...
- DJango安装-windows
1.进入虚拟环境后启动 activate 2.查看当前虚拟环境是否存在Django环境 pip list 3.不存在则 安装Django环境 pip install django 4.查看Django ...
- upc组队赛17 Stone Game【极小值】
Stone Game 题目链接 题目描述 Alice and Bob are always playing game! The game today is about taking out stone ...
- mybatise根据list参数查询
where id in<foreach item="item" index="index" collection="map.idList&quo ...
- JDK动态代理和CGLIB动态代理编码
JDK动态代理[接口]: import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import jav ...