CoreAnimation —— CALayer
概述
图层的属性
_demoView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 50, 50)];
_demoView.layer.cornerRadius = 5.0f;//圆角
_demoView.layer.backgroundColor = [UIColor orangeColor].CGColor;
_demoView.layer.shadowOffset = CGSizeMake(2, 2);//阴影设置
_demoView.layer.shadowColor = [UIColor brownColor].CGColor;
_demoView.layer.shadowOpacity = 1.0f;
[self.view addSubview:_demoView]; _demoView.layer.anchorPoint = CGPointMake(0.5, 0.0);
效果
图层绘制与移动
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
UIGraphicsPushContext(ctx); [[UIColor orangeColor] set];
UIRectFill(layer.bounds); [[UIColor blackColor] set];
UIFont *font = [UIFont systemFontOfSize:48.0f];
[@"Pushing The Limits" drawInRect:layer.bounds
withFont:font
lineBreakMode:NSLineBreakByWordWrapping
alignment:NSTextAlignmentCenter]; UIGraphicsPopContext();
}
才调用时,一定要使用setNeedsDisplay来标记layer,不然其一定不会绘制。
- (void)viewDidLoad
{
[super viewDidLoad]; CALayer *myLayer = [CALayer layer];
myLayer.backgroundColor = [UIColor redColor].CGColor;
myLayer.frame = CGRectMake(100, 100, 50, 50);
[self.view.layer addSublayer:myLayer]; UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(200, 100, 50, 50)];
myView.backgroundColor = [UIColor blueColor];
[self.view addSubview:myView]; [self performSelector:@selector(moveLayerAndView) withObject:nil afterDelay:3.0f];
} - (void)moveLayerAndView
{
CALayer *layer = self.view.layer.sublayers[0];
layer.position = CGPointMake(100, 350); UIView *view = self.view.subviews[0];
view.center = CGPointMake(200, 350);
}
运行后可以发现图层不是直接移动,大概有0.3秒左右的移动动画效果,如果想禁用该动作可以在moveLayerAndView里面加入[CATransaction setDisableActions:YES];
CoreAnimation —— CALayer的更多相关文章
- CoreAnimation (CALayer 动画)
CoreAnimation基本介绍: CoreAnimation动画位于iOS框架的Media层 CoreAnimation动画实现需要添加QuartzCore.Framework CoreAnima ...
- iOS之CALayer属性简介
/* CoreAnimation - CALayer.h Copyright (c) 2006-2017, Apple Inc. All rights reserved. */ #import < ...
- IOS QuartzCore核心动画框架
IOS QuartzCore核心动画框架 核心动画框架 使用核心动画需要引入的框架:#import CALayer: CoreAnimation CALayer就是UIView上的图层,很多的CALa ...
- 【iOS】用Layer创建一个三维模型以及拖动
关于CALayer的介绍以及基本属性,在这篇博客中有交代:CoreAnimation —— CALayer 这篇博客讲述简单的通过对layer的transform属性的设置一个CATransform3 ...
- iOS开发CoreAnimation解读之二——对CALayer的分析
iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二. ...
- CoreAnimation动画(CALayer动画)
#pragma mark - CABasicAnimation动画 - (IBAction)basicAnimation:(UIButton *)sender { // 1.创建动画对象 CABasi ...
- CALayer基本介绍与常见属性
属性框架:QuartzCore CA: CoreAnimation -> 核心动画,所有的核心动画都是添加给layer的! 与UIView的区别: 1.layer负责内容的展示,不接受任何用户交 ...
- iOS CoreAnimation详解(一) 有关Layer的动画
以前由于项目需要 也写了一些动画 ,但是知识不系统,很散.这段时间趁着项目完成的空袭,来跟着大神的脚步系统的总结一下iOS中Core Animation的知识点. 原博客地址:http://blog. ...
- iOS CALayer应用详解(2)
参考博客:http://blog.csdn.net/hello_hwc?viewmode=list 如果你对CALayer 还没有一个清晰的理解,欢迎看一下前面的博客: http://www.cnbl ...
随机推荐
- window.showModalDialog刷新父窗口和本窗口的方法及注意
window.showModalDialog刷新父窗口和本窗口的方法及注意: 一.刷新父窗口的方法: A.使用window.returnValue给父窗口传值,然后根据值判断是否刷新. 在w ...
- zoj 1004 dfs
想多了!以为一直dfs所有的情况会超时,所以直接忽略了,就自己想了一个优化的算法,最后测试结果对了,但是wa了,自己写算法很容易考虑不周的,还是在最后没有办法的时候在考虑自己的算法吧!!!简单的dfs ...
- 最大流之sap算法
若有向图G = (V , E)满足下列条件: 1.有且仅有一个顶点S,它的入度为 0 ,这个顶点称为源点. 2.有且仅有一个顶点T,它的出度为 0 ,这个顶点称为汇点. 3.每一条弧都有一个非负数,叫 ...
- Java学习之抽象类的总结
抽象类的特点:1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中,该类必须也被abstract修饰.2,抽象类不可以被实例化.为什么?因为调用抽象方 ...
- CDH 无法查看history log
1.配置(core-site.xml) <property> <name>hadoop.http.staticuser.user</name> <valu ...
- 高性能Mysql主从架构的复制原理及配置详解(转)
温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台 ...
- addChildViewController ipad 中Controller的嵌套和叠加
1.addChildViewController 在 base controller中添加子的controller,会自动调用子的controller中viewDidload,viewWillAppe ...
- pomelo
简介 Pomelo 是基于 Node.js 的高性能.分布式游戏服务器框架.它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发.Pomelo 不 ...
- Failed to upgrade Oracle Cluster Registry configuration(root.sh)
近期在给客户基于Suse 11 sp3安装Oracle 10g RAC,在安装完clusterware运行/u01/app/crs/root.sh时收到错误提示.Failed to upgra ...
- 用 jQuery Masonry 插件创建瀑布流式的页面
瀑布流式的页面,最早我是在国外的一个叫 Pinterest 的网站上看到,这个网站爆发,后来国内的很多网站也使用了这种瀑布流方式来展示页面(我不太喜欢瀑布流这个名字). 我们可以使用 jQuery 的 ...