iOS:CALayer核心动画层上绘图
在CALayer上绘图:
//创建子层(使用默认的锚点)
CALayer *subLayer = [[CALayer alloc]init]; subLayer.bounds = CGRectMake(,,, ); subLayer.position = self.view.center; subLayer.backgroundColor = [[UIColor redColor]CGColor];
//设置圆角半径,设置为50,此时的子层为圆形
subLayer.cornerRadius = ; [self.view.layer addSublayer:subLayer];
//设置层的代理
subLayer.delegate = self;
//只有发送setNeedsDisplay这个消息时才会调用代理方法
[subLayer setNeedsDisplay];
#pragma mark -CALayer的代理方法
-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
//画矩形
CGContextAddRect(ctx, CGRectMake(, , , ));
//设置颜色
CGFloat components[] = {0.0,1.0,0.0,1.0};
CGContextSetStrokeColor(ctx, components); //这种方式也可以设置颜色
//CGContextSetStrokeColorWithColor(ctx,[[UIColor greenColor]CGColor]);
//旋转坐标系
CGContextScaleCTM(ctx, , -);
CGContextTranslateCTM(ctx, , -); //画笑脸图像
UIImage *image = [UIImage imageNamed:@"1.png"];
CGContextDrawImage(ctx, CGRectMake(, , , ), [image CGImage]); //画路径
CGContextDrawPath(ctx, kCGPathStroke);
}


#import "ViewController.h"
#import "MyLayer.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; //创建子层
MyLayer *myLayer = [[MyLayer alloc]init];
myLayer.bounds = CGRectMake(, , , ); myLayer.position = CGPointMake(, );
//设置子层背景色为灰色
myLayer.backgroundColor = [[UIColor grayColor]CGColor]; [self.view.layer addSublayer:myLayer]; [myLayer setNeedsDisplay];
}
@end
#import "MyLayer.h"
#import <UIKit/UIKit.h> @implementation MyLayer
//重写这个方法
-(void)drawInContext:(CGContextRef)ctx
{ //绘制矩形
CGContextAddRect(ctx, CGRectMake(, , , )); //第一种设置颜色方式:
//设置颜色空间(选择配色方案:RGB,红、绿、蓝)
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGContextSetStrokeColorSpace(ctx, colorspace);
//数组中四个内容:前三个分别为红绿蓝颜色值,后一个为透明度
CGFloat components[] = {0.0,1.0,0.0,1.0};
CGContextSetStrokeColor(ctx, components); //这是另一种比较简单的设置颜色的方式
//CGContextSetStrokeColorWithColor(ctx, [[UIColor greenColor]CGColor]); //绘制描边路径
CGContextDrawPath(ctx, kCGPathStroke); //释放create出的属性,防止内存泄露
CGColorSpaceRelease(colorspace);
}
@end

iOS:CALayer核心动画层上绘图的更多相关文章
- iOS:CALayer核心动画层
CALayer:核心动画层 简介: Core Animation 是跨平台的,支持iOS环境和Mac OS X环境 学习核心动画之前,需要先理解CALayer,因为核心动画操作的对象不是UIView, ...
- iOS学习——核心动画
iOS学习——核心动画 1.什么是核心动画 Core Animation(核心动画)是一组功能强大.效果华丽的动画API,无论在iOS系统或者在你开发的App中,都有大量应用.核心动画所在的位置如下图 ...
- iOS学习——核心动画之Layer基础
iOS学习——核心动画之Layer基础 1.CALayer是什么? CALayer我们又称它叫做层.在每个UIView内部都有一个layer这样一个属性,UIView之所以能够显示,就是因为它里面有这 ...
- iOS:核心动画之基本动画CABasicAnimation
基本动画,是CAPropertyAnimation的子类 属性说明: fromValue:keyPath相应属性的初始值 toValue:keyPath相应属性的结束值 动画过程说明: 随着动画的进行 ...
- IOS QuartzCore核心动画框架
IOS QuartzCore核心动画框架 核心动画框架 使用核心动画需要引入的框架:#import CALayer: CoreAnimation CALayer就是UIView上的图层,很多的CALa ...
- ios开发核心动画七:核心动画与UIView动画的区别
/** UIView与核心动画区别?(掌握) 1.核心动画只作用在layer. 2.核心动画看到的都是假像,它并没有去修改UIView的真实位置. 什么时候使用核心动画? 1.当不需要与用户进行交互, ...
- iOS之核心动画(Core Animation)
Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能. Core ...
- iOS:核心动画的详解介绍:CAAnimation(抽象类)及其子类
核心动画的详解介绍:CAAnimation(抽象类) 1.核心动画基本概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! 使用它 ...
- iOS基础 - 核心动画
一.核心动画 l 核心动画基本概念 l 基本动画 l 关键帧动画 l 动画组 l 转场动画 l Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事 ...
随机推荐
- ThinkPHP运算符与PHP运算符对照表
ThinkPHP运算符与PHP运算符对照表 ThinkPHP标签 说明及对应PHP标签 备注 eq 等于(=)(==:用于模板判断时) 可用于查询条件与模板判断 neq 不等于(!=) 可用于查询条件 ...
- LintCode-Serialization and Deserialization Of Binary Tree
Design an algorithm and write code to serialize and deserialize a binary tree. Writing the tree to a ...
- LeetCode-Implement strStr()-KMP
Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...
- pietty and putty safe password
如何让putty记住密码..pietty也一样的不能记住密码. 找不到好的的方法...只好试着按照参数格式做了一个快捷方式..F:\soft\pietty.exe -pw password123 ro ...
- android webview开启html5支持
最近做的一个小项目需要用到webview.虽然只是一个简单的网页,但是由于以前用的都只是显示本地文件,没有显示网页文件.现在需要显示网页文件,发现许多网站的webapp做的挺不错的,无论是显示还是用户 ...
- NSIS中判断.net framework 是否安装
在网上找了几个脚本,原理都是读取注册表进行判断,都可以用. 1.CheckDotNetFramework /* * Name: CheckDotNetFramework.nsh * Version: ...
- hibernate---ID生成策略
5.1.4.1. Generator 可选的<generator>子元素是一个Java类的名字, 用来为该持久化类的实例生成唯一的标识.如果这个生成器实例需要某些配置值或者初始化参数, 用 ...
- Redis 起步
Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章: 1.Redis简介 Redis是一个key-value存储系统.和Memcached类似,但是解决 ...
- Science:给青年科研工作者的忠告
- ios 环境配置网址
http://blog.csdn.net/cwb1128/article/details/18019751