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; 用来设 ...
随机推荐
- Malformed UTF-8 characters, possibly incorrectly encoded 或中文乱码 (Uncaught InvalidArgumentException: Malformed UTF-8 characters, possibly incorrectly encoded in)
问题: Uncaught InvalidArgumentException: Malformed UTF-8 characters, possibly incorrectly encoded in 是 ...
- Java多线程引例及实现多线程的方式
多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术. Java多线程是由JVM来实现,不必关心操作系统的调用问题. 假如我们要实现如下功能: public c ...
- spring cloud服务间调用feign
参考文章:Spring Cloud Feign设计原理 1.feign是spring cloud服务间相互调用的组件,声明式.模板化的HTTP客户端.类似的HttpURLConnection.Apac ...
- jmeter之2种方法录制脚本
有时候候录制脚本比写脚本且快,这时候我们可以采用录制的方法完成jmeter脚本工作 目录 1.badboy录制 2.代理服务器录制 1.badboy录制 第一步:下载安装 badboy2.2下载:链接 ...
- Vue Cli 3:创建项目
一 简介 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,有几个独立的部分. 1 CLI (@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue 命令.(vue ...
- python学习笔记:__init__.py的作用
package标识,而非文件夹. 在pycharm中new,有Directory和Python Package两个选项. 分别创建Directory和package,发现前者只是一个空目录,后者包含一 ...
- jQuery基础--动画操作
三组基本动画 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=" ...
- Swipe-移动端触摸滑动插件swipe.js
原文链接:http://caibaojian.com/swipe.html 插件特色 viaswipe.JS是一个比较有名的触摸滑动插件,它能够处理内容滑动,支持自定义选项,你可以让它自动滚动,控制滚 ...
- CentOS利用Lua访问Redis
首先确保你编译的Lua是支持链接外部动态链接库的.因为在对Redis进行访问时是需要使用socket通信的, 而这依赖于外部的C语言写的动态连接库. 首先,这里先下载Redis的Lua客户端访问包re ...
- jsp页面注册验证问题
<script type="text/javascript"> $(function(){ // 错误消息提示 var msg = "${msg}" ...