将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使用相关推荐

  1. int 几个字节 java_Java中char,short,int,long占几个字节和多少位

    1.字节:byte:用来计量存储容量的一种计量单位:位:bit 2.一个字节等于8位  1byte = 8bit char占用的是2个字节 16位,所以一个char类型的可以存储一个汉字. 整型: b ...

  2. 感知算法论文(四):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 实验细节 ...

  3. Mask Scoring R-CNN论文阅读

    为了以后的学习方便,把几篇计算机视觉的论文翻译放上来,仅为自己的学习方便,本文仅将自己感兴趣部分简单翻译.排版对手机端不友好,欢迎各位指正. 为提高实例分割的性能,该论文寻找了一个新的方向--对生成的 ...

  4. opencv图像处理常用完整示例代码总结

    显示图像 #include "StdAfx.h" #include <string> #include <iostream> #include <op ...

  5. opencv图像处理总结

    opencv图像处理基本操作 1. 矩阵数据类型 通用矩阵数据类型: CV_<bit_depth>(S|U|F)C<number_of_channels> 其中,S表示带符号整 ...

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

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

  7. php绘制频谱图,一步一步教你实现iOS音频频谱动画(二)

    本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制. 前言 在上篇文章中我们已经拿到了频谱数据,也知道了数组每个元素表示的是振幅,那这些数组元素之间有什么关系呢? ...

  8. 音频断句Matlab,一步一步教你实现iOS音频频谱动画(二)

    如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制. 前言 在上篇文章中我们已 ...

  9. OpenCV 的 GrabCut 可运行代码 及实例

    OpenCV中 GrabCut 的可运行代码 参考:http://www.cnblogs.com/tornadomeet/archive/2012/11/09/2763271.html #includ ...

最新文章

  1. django ContentType使用方法
  2. VS的几个实用快捷键
  3. STM32 网络通信Web Server中 SSI与CGI的应用解析
  4. 全球首款采用离心风扇/90Hz刷新率的电竞手机红魔3发布
  5. leetcode刷题日记-喧闹和富有
  6. Springboot+vue项目酒店民宿管理系统
  7. VS2015: 无法打开包括文件: “QSerialPort”: No such file or directory
  8. win7+VS2008安装boost
  9. 花式讲解校园网绕过认证原理
  10. 医院信息化建设,产品规划要求​
  11. PHP代码执行漏洞总结
  12. 肖邦 第一叙事曲 赏析
  13. python里output是什么意思_Python入门系列:Input/Output
  14. 十六进制颜色与RGB颜色转换
  15. 天耀18期 -09.数组【作业】.
  16. JavaScript 教程「2」:注释、输入输出、变量
  17. 你中了微软的圈套么?
  18. 【渝粤题库】陕西师范大学164103 网络贸易 作业 (高起专)
  19. Ubuntu 安装截图软件
  20. 涂子沛:个人信息保护入法,堵住非法变现通道

热门文章

  1. PM2.5检测 -- PMS7003 采集和 MQTT 传输
  2. 几个重要的java数据库访问类和接口
  3. Bit-Z收不到邮箱验证码怎么办(如何添加Bit-Z至邮箱白名单?)
  4. 【译】KNOWLEDGE EXTRACTION FROM UNSTRUCTURED TEXTS
  5. Android fragment源码全解析
  6. Android平台类加载流程源码分析
  7. Ehcache存储策略总结
  8. python汉诺塔用循环结构实现_Python基于递归算法实现的汉诺塔与Fibonacci数列
  9. matlab cell转double_MATLAB处理数据,掌握这7个小技巧就够了
  10. 一直在构建工作空间_基于用户场景构建的建筑工程弱电设计工作设想