将CAGradientLayer当做mask使用

效果

源码

https://github.com/YouXianMing/Animations

//
// CAGradientView.h
// MaskView
//
// Created by YouXianMing on 16/2/15.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import <UIKit/UIKit.h> @interface CAGradientView : UIView /**
* CAGradientLayer's colors.
*/
@property (nonatomic, strong) NSArray *colors; /**
* CAGradientLayer's locations.
*/
@property (nonatomic, strong) NSArray *locations; /**
* CAGradientLayer's startPoint.
*/
@property (nonatomic) CGPoint startPoint; /**
* CAGradientLayer's endPoint.
*/
@property (nonatomic) CGPoint endPoint; @end
//
// CAGradientView.m
// MaskView
//
// Created by YouXianMing on 16/2/15.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import "CAGradientView.h" @interface CAGradientView () { CAGradientLayer *_gradientLayer;
} @end @implementation CAGradientView + (Class)layerClass { return [CAGradientLayer class];
} - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { _gradientLayer = (CAGradientLayer *)self.layer;
} return self;
} #pragma mark - 重写setter,getter方法 @synthesize colors = _colors; - (void)setColors:(NSArray *)colors { _colors = colors; // 将color转换成CGColor
NSMutableArray *cgColors = [NSMutableArray array]; for (UIColor *tmp in colors) { id cgColor = (__bridge id)tmp.CGColor;
[cgColors addObject:cgColor];
} // 设置Colors
_gradientLayer.colors = cgColors;
} - (NSArray *)colors { return _colors;
} @synthesize locations = _locations; - (void)setLocations:(NSArray *)locations { _locations = locations;
_gradientLayer.locations = _locations;
} - (NSArray *)locations { return _locations;
} @synthesize startPoint = _startPoint; - (void)setStartPoint:(CGPoint)startPoint { _startPoint = startPoint;
_gradientLayer.startPoint = startPoint;
} - (CGPoint)startPoint { return _startPoint;
} @synthesize endPoint = _endPoint; - (void)setEndPoint:(CGPoint)endPoint { _endPoint = endPoint;
_gradientLayer.endPoint = endPoint;
} - (CGPoint)endPoint { return _endPoint;
} @end

细节

将CAGradientLayer当做mask使用的更多相关文章

  1. iOS—Mask属性的使用

    Mask属性介绍 Mask平时用的最多的是masksToBounds 吧. 其实除此以外Mask使用场景很多,看完之后你会发现好真是好用的不要不要的... 先来了解下Mask属性到底是什么? Mask ...

  2. Swift - LineChart绘制折线图

    LineChart,就使用Core Graphics和QuartzCore框架中的CAShapeLayer绘制.这样执行效率明显比堆砌UIView的方法效率高--占用资源少,执行快. 看看CALaye ...

  3. MSAA

    多重采样抗锯齿(MultiSampling Anti-Aliasing,簡稱MSAA)是一种特殊的超级采样抗锯齿(SSAA).MSAA首先来自于OpenGL.具体是MSAA只对Z缓存(Z-Buffer ...

  4. swift:打造你自己的折线图

    看到苹果Health里的折线图了吗.我们就是要打造一个这样的折线图.没看过的请看下图. 我们的主题在于折线图本身.其他的包括步数.日平均值等描述类的内容这里就不涉及了. 首先观察,这个图种包含些什么组 ...

  5. GrabCut--Opencv篇

    最近因为工作需要,需要实现一个Grabcut函数.Opencv已经提供此函数,今天把opencv的例程拿出来跑了一下,对于简单的背景实现效果还不错. OpenCV中的GrabCut算法是依据<& ...

  6. iOS CAShapeLayer、CADisplayLink 实现波浪动画效果

    iOS CAShapeLayer.CADisplayLink 实现波浪动画效果 效果图 代码已上传 GitHub:https://github.com/Silence-GitHub/CoreAnima ...

  7. Unity LayerMask

    Unity用int32的每一位表示32个层,int32用二进制有32位,Layers通常被摄像机用来渲染部分场景,和灯光照射部分场景使用.但是它们也可以用来做射线检测时忽略一些collder或Coll ...

  8. 基于GraphCuts图割算法的图像分割----OpenCV代码与实现

    转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/44151213, 来自:shiter编写程序的艺术 1.绪论 图切割算法是组合图论 ...

  9. CAShapeLayer的使用[2]

    CAShapeLayer的使用[2] CAShapeLayer支持的动画类型有如下这些. ------------------------------------------------------- ...

随机推荐

  1. java判断部署项目使用的服务器类型

    有两种方式 1.项目引入portal-kernel.jar.项目运行时使用 根据返回boolean值判断类型! 2.自己写java类 package webService.ZFGX.service; ...

  2. Scala 学习笔记(1)之入门篇

    Scala is pronounced skah-lah. Scala 全称为 scalable language,是一种面向对象(object)- 函数式(functional)静态类型(stati ...

  3. .NetCore 利用Jenkins在 Windows平台下打包发布Angular项目

    准备环境 安装Jenkins 首先装node,版本根据实际环境而定(node安装包中包含了npm) 安装一般都配置好了环境变量,检查下如果没有就配置下 Jenkins中安装NPM插件 GIt获取代码 ...

  4. H5判断网络状态

    1.判断网络连接的网络状态 if (navigator.onLine) { alert('online')} else { alert('offline');} 想要监听浏览器的联网状态, 使用win ...

  5. MySQL 索引原理概述及慢查询优化实战

    MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位 ...

  6. [js]BOM篇

    一.什么是BOM BOM(Browser Object Model)即浏览器对象模型. BOM提供了独立于内容 而与浏览器窗口进行交互的对象: 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对 ...

  7. WEP/WPA-PSK密码破解工具aircrack-ng

    WEP/WPA-PSK密码破解工具aircrack-ng   aircrack-ng是Aircrack-ng工具集中的一个工具.该工具主要用于根据已经抓取的.cap文件或者.ivs文件破解出WEP/W ...

  8. INSTALL_FAILED_CONFLICTING_PROVIDER

    主要是由于调试的环境中已有一个同名的Provider存在. 解决方法是修改AndroidManifest.xml中的 <provider android:name=".apps.App ...

  9. bzoj4456: [Zjoi2016]旅行者

    题目链接 bzoj4456: [Zjoi2016]旅行者 题解 网格图,对于图分治,每次从中间切垂直于长的那一边, 对于切边上的点做最短路,合并在图两边的答案. 有点卡常 代码 #include< ...

  10. [BZOJ4129]Haruna’s Breakfast(树上带修改莫队)

    BZOJ3585,BZOJ2120,BZOJ3757三合一. 对于树上路径问题,树链剖分难以处理的时候,就用树上带修改莫队. 这里的MEX问题,使用BZOJ3585的分块方法,平衡了时间复杂度. 剩下 ...