IOS 创建渐变图层
- 代码如下
- typedef enum {
- GradientLayerKindLeftRight = ,
- GradientLayerKindUpDown,
- GradientLayerKindLBRT,//左下-右上
- GradientLayerKindLTRB //左上-右下
- }GradientLayerKind;
- //--------------------------------------------------------------
- // 创建矩形渐变图层
- //
- // @param frame 渐变图层的frame
- // @param startColor 起始颜色(设置起止颜色的时候可以设置颜色的透明度达到透明度渐变的效果)
- // @param endColor 终止颜色
- // @param kind 渐变类型
- // GradientLayerKindLeftRight = 1,//左-右
- // GradientLayerKindUpDown, //上-下
- // GradientLayerKindLBRT, //左下-右上
- // GradientLayerKindLTRB //左上-右下
- // @return 渐变色layer
- //----------------------------------------------------------
- - (CALayer*)ct_getGradientLayerWithFrame:(CGRect)frame StartColor:(UIColor *)startColor endColor:(UIColor*)endColor andKind:(GradientLayerKind)kind{
- //渐变图层
- CAGradientLayer *gradientLayer = [CAGradientLayer layer];
- gradientLayer.frame = frame;
- [gradientLayer setColors:[NSArray arrayWithObjects:(id)[startColor CGColor],(id)[endColor CGColor], nil]];
- if (kind == GradientLayerKindUpDown) {
- [gradientLayer setLocations:@[@,@]];
- [gradientLayer setStartPoint:CGPointMake(0.5, )];
- [gradientLayer setEndPoint:CGPointMake(0.5, )];
- }else if (kind == GradientLayerKindLeftRight){
- [gradientLayer setLocations:@[@,@]];
- [gradientLayer setStartPoint:CGPointMake(, 0.5)];
- [gradientLayer setEndPoint:CGPointMake(, 0.5)];
- }else if (kind == GradientLayerKindLTRB){
- [gradientLayer setLocations:@[@,@]];
- [gradientLayer setStartPoint:CGPointMake(, )];
- [gradientLayer setEndPoint:CGPointMake(, )];
- }else if (kind == GradientLayerKindLBRT){
- [gradientLayer setLocations:@[@,@]];
- [gradientLayer setStartPoint:CGPointMake(, )];
- [gradientLayer setEndPoint:CGPointMake(, )];
- }
- return gradientLayer;
- }
- 使用:viewcontroller的viewdidload中
- for (int i = ; i < ; i++) {
- NSInteger hang = i%,lie=i/;
- CGFloat w=self.view.frame.size.width/2.0,h=(self.view.frame.size.height-)/2.0;
- CGRect frame = CGRectMake(hang*w, lie*h, w, h);
- [self.view.layer addSublayer:[self ct_getGradientLayerWithFrame:frame StartColor:[self rgb: g: b: a:0.9] endColor:[self rgb: g: b: a:0.1] andKind:i+]];
- }
- 设置颜色方法:
- -(UIColor*)rgb:(NSInteger)r g:(NSInteger)g b:(NSInteger)b a:(CGFloat)alpha{
- return [UIColor colorWithRed:r%/256.0 green:g%/256.0 blue:b%/256.0 alpha:alpha];
- }
- 效果图如图所示:(可以发现图层下的label和按钮都可以显示,并且按钮的点击事件正常响应)
IOS 创建渐变图层的更多相关文章
- IOS渐变图层CAGradientLayer
看支付宝蚂蚁积分,天气预报等好多APP都有圆形渐变效果,今天就试着玩了. 一.CAGradientLayer类中属性介绍 CAGradientLayer继承CALayer,主要有以下几个属性: 1.@ ...
- iOS - CALayer 绘图层
1.CALayer 绘图层 在 iOS 系统中,你能看得见摸得着的东西基本上都是 UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是 UIView.其实 UIView 之 ...
- iOS开发 - CALayer图层
CALayer的基本使用 在iOS中.你能看得见摸得着的东西基本上都是UIView.比方一个button.一个文本标签.一个文本输入框.一个图标等等.这些都是UIView 事实上UIView之所以能显 ...
- 【原】Github系列之三:开源iOS下 渐变颜色的进度条WGradientProgress
概述 今天我们来实现一个iOS平台上的进度条(progress bar or progress view).这种进度条比APPLE自带的更加漂亮,更加有“B格”.它拥有渐变的颜色,而且这种颜色是动态移 ...
- [iOS Animation]-CALayer 图层性能
图层性能 要更快性能,也要做对正确的事情. ——Stephen R. Covey 在第14章『图像IO』讨论如何高效地载入和显示图像,通过视图来避免可能引起动画帧率下降的性能问题.在最后一章,我们将着 ...
- ArcGIS Runtime SDK for iOS开发地图图层-图形图层
注:本文翻译自:https://developers.arcgis.com/ios/objective-c/guide/creating-a-graphics-layer.htm 创建图 ...
- MAPINFO中利用GridMaker工具创建栅格图层
在工作中需要使用栅格地图,以往都是由研发人员来创建,今天偶然发现Mapinfo中有GridMaker这样一个工具,结合网络搜索自己试了一下,居然做成功了,这里把步骤记录下来,方便以后查看. 1.首先在 ...
- cocos2dx中的背景图层CCLayerColor和渐变图层CCLayerGradient
1.CCLayerColor是专门用来处理背景颜色的图层,它继承自CCLayer,可以用来设置图层的背景颜色,因为CCLayer默认是透明色的,即无颜色的 2.CCLayerGradient是用来显示 ...
- [转] arcgis Engine创建shp图层
小生 原文 arcgis Engine创建shp图层 以创建点图层为例.首先要得到保存文件的地址. SaveFileDialog saveFileDialog = new SaveFileDialog ...
随机推荐
- 使用Java开发高性能网站需要关注的那些事儿
无论大型门户网站还是中小型垂直类型网站都会对稳定性.性能和可伸缩性有所追求.大型网站的技术经验分享值得我们去学习和借用,但落实到更具体的实践上并不是对所有网站可以适用,其他语言开发的网站我还不敢多说, ...
- [bzoj1087][scoi2005]互不侵犯king
题目大意 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上 左下右上右下八个方向上附近的各一个格子,共8个格子. 思路 首先,搜索可以放弃,因为这是一 ...
- IE 6 ~ 9 CSS Hack 写法总结
IE 6 ~ 9 CSS Hack 写法总结 24th 四, 14 lip2up [code lang="css"]_color: red; /* ie6 */*color: ...
- Android--Activity(活动)
1. 安卓中的 Activity 大致等于桌面应用中的window 2. Activity 的生命周期由系统控制, 所以在开发时要假设 Activity 会被随时销毁掉的情况, 比如: 应用中有一个 ...
- jquery toggle方法
$("#myDiv").toggle(function () { alert(1); }, function () { alert(2); }); 某种需求下可以替代click事件 ...
- Java实现选择排序
选择排序思想就是选出最小或最大的数与第一个数交换,然后在剩下的数列中重复完成该动作. package Sort; import java.util.Arrays; public class Selec ...
- 樹的DFS和BFS
菜鸟心得.... 不对请指出....... /*BFS,广度优先搜索树,用最简单的2叉树来举例, 树的结构如下: A B C D E F GH I J K L M N O广度优先搜索树, 顺序应该是A ...
- .NET 扩展方法(Extention Method)的要点
扩展方法Extention Method的主要介绍在:http://msdn.microsoft.com/zh-cn/library/bb383977(v=vs.100).aspx. 扩展方法的意义在 ...
- DataTable 转 List<T>
最近在做一个项目,表的数据巨多,而且表的字段一般都在30个以上.公司规定不能用Nhibernate以及ef等ORM框架. 所以查询绑定时的工作量极为痛苦.没有办法,自己写了个DataTableToLi ...
- android studio ndk配置和ndk开发
配置开发环境: 1:下载ndk,导入android studio中. 2:在项目中引入NDK 3:在计算机path变量中导入NDK路径,在编译.h文件的时候会用到. 一:建立java的native ...