标签:
图层与动画知识点总结
1.Core Animation
非娱乐类的软件都会用到的动画,操作简单。
2.Quartz 2D绘图
是一个2D绘图引擎。
CGContextRef currentContext = UIGraphicsGetCurrentContext();
要恢复保存过的Context,则可用UIGraphicsPopContext。
3.OpenGL ES编程
一般是三个步骤:
4.Metal(底层API)
苹果最新推出的Metal框架支持GPU硬件加速、高级3D图形渲染以及大数据并行运算。且提供了先进而精简的API来确保框架的细粒度(fine-grain),并且在组织架构、程序处理、图形呈现、运算指令以及指令相关数据资源的管理上都支持底层控制。其核心目的是尽可能的减少CPU开销,而将运行时产生的大部分负载交由GPU承担。 ——Metal编程指南
下面是一些关于开发遇到的技术问题总结
/**************************************************************************************************************/
复制:根据对应的属性复制一个图层
1 CAReplicatorLayer *re = [CAReplicatorLayer layer]; 2 3 re.frame = self.drawView.bounds; 4 5 6 7 re.instanceCount = 5; 8 9 re.instanceTransform = CATransform3DMakeTranslation(60, 0, 0); 10 11 12 13 re.instanceDelay = 0.5; 14 15 16 17 // re.instanceColor = [UIColor colorWithWhite:1 alpha:0.2].CGColor; 18 19 20 21 [self.drawView.layer addSublayer:re];
渐变:使一个View中颜色布局渐变分配
1 CAGradientLayer *gra = [CAGradientLayer layer]; 2 3 _gra = gra; 4 5 gra.frame = _imgBottom.bounds; 6 7 8 9 gra.startPoint = CGPointMake(0, 0); 10 11 gra.endPoint = CGPointMake(0, 1); 12 13 14 15 gra.colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor grayColor].CGColor]; 16 17 18 19 gra.opacity = 0; 20 21 22 23 [_imgBottom.layer addSublayer:gra]; 24 25
截图:截取屏幕区域作为图片保存
1 /** 2 3 * 产生截图 4 5 */ 6 7 - (void)createScreenShot 8 9 { 10 11 UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0.0); 12 13 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 14 15 UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 16 17 [self.images addObject:image]; 18 19 } 20 21
快速合并两张图片;
1 /** 2 3 * 先设置两张图片,并且将空间的宽度和图片的宽度相等,高度等于图片的一半,使用下面的方法实现两张图片的快速合并 4 5 */ 6 7 8 9 //设置内容的范围 10 11 _imgTop.layer.contentsRect = CGRectMake(0, 0, 1, 0.5); 12 13 _imgBottom.layer.contentsRect = CGRectMake(0, 0.5, 1, 0.5); 14 15 16 17 //设置锚点使得移动 18 19 _imgTop.layer.anchorPoint = CGPointMake(0.5, 1); 20 21 _imgBottom.layer.anchorPoint = CGPointMake(0.5, 0); 22 23 24 25
立体感:远小近大的效果
1 CATransform3D trans = CATransform3DIdentity; 2 3 4 5 CGFloat d = 100; 6 7 8 9 trans.m34 = -1 / d; 10 11 12 13 14 15 trans = CATransform3DMakeRotation(-angle, 1, 0, 0); 16 17 18 19 self.imgTop.layer.transform = trans; 20 21
标签:
原文地址:http://www.cnblogs.com/iCocos/p/4713918.html