2013年10月1日
摘要: 在CALayer上绘图有2种方法1)创建一个CALayer的子类,然后覆盖drawInContext:方法,可以使用Quartz2D api进行绘图2)设置CALayer的代理,让代理实现drawLayer:inContext方法进行绘图。一般是在控制器里实现。这样会增加控制器的负担。调用这2个方法以后都必须调用setNeedsDisplay方法重新绘制视图,才能生效。所有的非root layer都存在隐式动画,根图层没有隐式动画。负责UIVIEW部分。视图上的根图层是没有隐式动画的。1)采用代理方式在图层上绘图的代码//// MainViewController.m// CALayer绘图_ 阅读全文
posted @ 2013-10-01 21:48 老猫zl 阅读(1289) 评论(0) 推荐(0) 编辑
摘要: calayer就是用来做动画,所以内部就隐含了一些动画。改变属性的时候就触发动画,默认的动画时长时0.25秒如果可动画属性发生改变,就会产生动画例如1)bounds:缩放动画2)position 平移动画3)opacity 淡入淡出动画,改变了透明度等在帮助里搜索animatable可以查到可动画属性改变这些属性,都可以触发动画。//// MainViewController.m// CALayer隐式动画_demo1//// Created by mac on 13-10-1.// Copyright (c) 2013年 mac. All rights reserved.//#imp... 阅读全文
posted @ 2013-10-01 18:09 老猫zl 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 每个uiview都有一个层,每个层可以有多个子层。1)layer的设计目的不是取代视图,不能基于layer创建一个可视化的控件2)layer设计目的是提供视图的基本可视内容。提高动画的执行效率。主要是提高动画的执行效率。3)除了提供可视内容。layer不负责事件响应,内容填充,layer不参与到响应者链条中。- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. CALayer *layer = [CALayer layer]; [s... 阅读全文
posted @ 2013-10-01 16:28 老猫zl 阅读(385) 评论(0) 推荐(1) 编辑
摘要: 阅读全文
posted @ 2013-10-01 16:26 老猫zl 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 每个uiview都有一个层,每个层可以有多个子层。1)layer的设计目的不是取代视图,不能基于layer创建一个可视化的控件2)layer设计目的是提供视图的基本可视内容。提高动画的执行效率。主要是提高动画的执行效率。3)除了提供可视内容。layer不负责事件响应,内容填充,layer不参与到响应者链条中。改变视图的layer的属性,会包含一些隐式动画。常用的属性有,圆角半径,阴影,边框它是动画的核心。核心动画的本质是,将CALayer中的内容转换成位图,然后由图形硬件来操作。每个uiview内部都有个layer.layer的视图功能非常强大。CALayer并不是属于uikit框架,在Qua 阅读全文
posted @ 2013-10-01 12:32 老猫zl 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 单视图转场动画- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [UIView transitionWithView:self.imageview duration:1.0f options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{ // 这里只要设置视图翻转之后的内容就行。 self.imageview.tag = (self.imageview.tag + 1)%self.imagelist.count; ... 阅读全文
posted @ 2013-10-01 11:28 老猫zl 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 从一个场景转到另一个场景。多视图控制器的model,push这些都是转场动画。共同的特点是,在转场过程中不能交互。CATransitiontype:动画类型subtype:动画过渡方向动画之间的关联关系转场动画支持方向type和subtype都是字符串。type有关键字设置type和subtype,有些有关键字常量,但可以直接使用字符串。- (void)myswipe:(UISwipeGestureRecognizer *)gesture{ CATransition *transiton = [[CATransition alloc] init]; UIImageView *imagevi.. 阅读全文
posted @ 2013-10-01 00:43 老猫zl 阅读(250) 评论(0) 推荐(0) 编辑