将CAGradientLayer当做mask使用
将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转换成CGColorNSMutableArray *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
细节
转载于:https://www.cnblogs.com/YouXianMing/p/5193840.html
将CAGradientLayer当做mask使用相关推荐
- int 几个字节 java_Java中char,short,int,long占几个字节和多少位
1.字节:byte:用来计量存储容量的一种计量单位:位:bit 2.一个字节等于8位 1byte = 8bit char占用的是2个字节 16位,所以一个char类型的可以存储一个汉字. 整型: b ...
- 感知算法论文(四):Mask Scoring R-CNN (2019)译文
文章目录 摘要 1. 引言 2. 相关工作 2.1 实例分割 2.2 检测得分校正 3. 方法 3.1 动机 3.2 Mask scoring in Mask R-CNN 4. 实验 4.1 实验细节 ...
- Mask Scoring R-CNN论文阅读
为了以后的学习方便,把几篇计算机视觉的论文翻译放上来,仅为自己的学习方便,本文仅将自己感兴趣部分简单翻译.排版对手机端不友好,欢迎各位指正. 为提高实例分割的性能,该论文寻找了一个新的方向--对生成的 ...
- opencv图像处理常用完整示例代码总结
显示图像 #include "StdAfx.h" #include <string> #include <iostream> #include <op ...
- opencv图像处理总结
opencv图像处理基本操作 1. 矩阵数据类型 通用矩阵数据类型: CV_<bit_depth>(S|U|F)C<number_of_channels> 其中,S表示带符号整 ...
- swift:打造你自己的折线图
看到苹果Health里的折线图了吗.我们就是要打造一个这样的折线图.没看过的请看下图. 我们的主题在于折线图本身.其他的包括步数.日平均值等描述类的内容这里就不涉及了. 首先观察,这个图种包含些什么组 ...
- php绘制频谱图,一步一步教你实现iOS音频频谱动画(二)
本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制. 前言 在上篇文章中我们已经拿到了频谱数据,也知道了数组每个元素表示的是振幅,那这些数组元素之间有什么关系呢? ...
- 音频断句Matlab,一步一步教你实现iOS音频频谱动画(二)
如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制. 前言 在上篇文章中我们已 ...
- OpenCV 的 GrabCut 可运行代码 及实例
OpenCV中 GrabCut 的可运行代码 参考:http://www.cnblogs.com/tornadomeet/archive/2012/11/09/2763271.html #includ ...
最新文章
- django ContentType使用方法
- VS的几个实用快捷键
- STM32 网络通信Web Server中 SSI与CGI的应用解析
- 全球首款采用离心风扇/90Hz刷新率的电竞手机红魔3发布
- leetcode刷题日记-喧闹和富有
- Springboot+vue项目酒店民宿管理系统
- VS2015: 无法打开包括文件: “QSerialPort”: No such file or directory
- win7+VS2008安装boost
- 花式讲解校园网绕过认证原理
- 医院信息化建设,产品规划要求​
- PHP代码执行漏洞总结
- 肖邦 第一叙事曲 赏析
- python里output是什么意思_Python入门系列:Input/Output
- 十六进制颜色与RGB颜色转换
- 天耀18期 -09.数组【作业】.
- JavaScript 教程「2」:注释、输入输出、变量
- 你中了微软的圈套么?
- 【渝粤题库】陕西师范大学164103 网络贸易 作业 (高起专)
- Ubuntu 安装截图软件
- 涂子沛:个人信息保护入法,堵住非法变现通道
热门文章
- PM2.5检测 -- PMS7003 采集和 MQTT 传输
- 几个重要的java数据库访问类和接口
- Bit-Z收不到邮箱验证码怎么办(如何添加Bit-Z至邮箱白名单?)
- 【译】KNOWLEDGE EXTRACTION FROM UNSTRUCTURED TEXTS
- Android fragment源码全解析
- Android平台类加载流程源码分析
- Ehcache存储策略总结
- python汉诺塔用循环结构实现_Python基于递归算法实现的汉诺塔与Fibonacci数列
- matlab cell转double_MATLAB处理数据,掌握这7个小技巧就够了
- 一直在构建工作空间_基于用户场景构建的建筑工程弱电设计工作设想