![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS Core Aniamtion Ad Tech
Ansel_m
阿里天猫
展开
-
CATransformLayer使用
//red layer CALayer *redLayer = [CALayer layer]; redLayer.frame = (CGRect){CGPointZero, CGSizeMake(200, 200)}; redLayer.position = CGPointMake(200, 300); redLayer.backgroundColor = [UIColor redColor].CGColor; //Z轴平移 CATran...原创 2020-08-11 20:24:27 · 209 阅读 · 0 评论 -
遮罩实现镂空
[self.view setBackgroundColor:[UIColor redColor]]; UIView *guideView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; guideView.backgroundColor = [UIColor blackColor]; guideView.alpha = 0.6; UIBezierPat...原创 2020-08-07 14:23:02 · 229 阅读 · 0 评论 -
iOS-Core-Animation-Advanced-Techniques(五)
图层时间和缓冲图层时间时间和空间最大的区别在于,时间不能被复用 -- 弗斯特梅里克在上面两章中,我们探讨了可以用CAAnimation和它的子类实现的多种图层动画。动画的发生是需要持续一段时间的,所以计时对整个概念来说至关重要。在这一章中,我们来看看CAMediaTiming,看看Core Animation是如何跟踪时间的。CAMediaTiming协议C转载 2015-04-27 09:36:56 · 3215 阅读 · 0 评论 -
WWDC心得与延伸:iOS图形性能
目录:Core Animation PipelineUIBlurEffectView图形性能测试工具总结Core Animation Pipeline第一部分主要讲解了Core Animation的工作流程和渲染过程。CoreAnimation的渲染流程可以用下图来概括:在GPU的渲转载 2016-01-25 22:55:23 · 574 阅读 · 0 评论 -
水波动画的实现
CAMediaTimingFunction *defaultCurve = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionDefault]; CAAnimationGroup *animationGroup = [CAAnimationGroupanimation]; animati原创 2016-02-12 18:05:17 · 1552 阅读 · 0 评论 -
iOS anchorPoint、position、bounds的关系
position.x = frame.origin.x + 0.5 * bounds.size.width; position.y = frame.origin.y + 0.5 * bounds.size.height;里面的0.5是因为anchorPoint取默认值,更通用的公式应该是下面的:position.x = frame.origin.x + anchorP原创 2016-01-22 23:09:43 · 569 阅读 · 0 评论 -
iOS image 解压
NSURL *imageURL = [NSURL fileURLWithPath:path];//使用kCGImageSourceShouldCache来创建图片,强制图片立刻解压NSDictionary *options = @{(__bridge id)kCGImageSourceShouldCache: @YES}; CGImage原创 2017-05-05 19:55:48 · 358 阅读 · 0 评论 -
创建任意圆角个数
CGRect rect =CGRectMake(50,50, 100,100); CGSize radii = CGSizeMake(20,20); UIRectCorner corners = UIRectCornerTopRight |UIRectCornerBottomRight | UIRectCornerBottomLeft;原创 2017-04-25 17:21:06 · 277 阅读 · 0 评论 -
iOS斜切变换
CGAffineTransform CGAffineTransformMakeShear(CGFloat x,CGFloat y){ CGAffineTransform transform =CGAffineTransformIdentity; transform.c = -x; transform.b = y;原创 2017-11-08 16:21:53 · 562 阅读 · 0 评论 -
iOS动画的图层响应用户输入
@interface ViewController ()@property (nonatomic, strong) CALayer *colorLayer;@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; //create a r原创 2017-11-09 14:44:57 · 219 阅读 · 0 评论 -
CAAnimation 如何解决保持动画最后的状态不变
CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; [rotationAnimation setRepeatCount:0]; [rotationAnimation setDuration:0.6]; [原创 2016-01-21 23:28:05 · 9741 阅读 · 0 评论 -
CAKeyframeAnimation keyPath可以是用的key
transform.rotation.x 围绕x轴翻转 transform.rotation.y 围绕y轴翻转 transform.rotation.z 围绕z轴翻转 transform.rotation 默认围绕z轴 transform.scale.x x方向缩放 transform.scale.y y方向缩放 transform.scale.z z方向缩放 tra原创 2017-11-09 16:00:39 · 655 阅读 · 0 评论 -
UIImageView 平滑过渡图片切换
eg:#import "ViewController.h"@interface ViewController ()@property (nonatomic, strong) UIImageView *imageView;@property (nonatomic, copy) NSArray *images;@end@implementation原创 2017-11-09 17:11:25 · 2805 阅读 · 0 评论 -
放肆的使用UIBezierPath和CAShapeLayer画各种图形
CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你。杂谈在 CAShapeLayer 中,也可以像 CALayer 一样指定它的 frame 来画,就像这样:let layer = CAShapeLayer()layer.frame = CGRectMake(110, 100, 150, 10...转载 2018-09-17 10:46:02 · 145 阅读 · 0 评论 -
iOS动画和特效(七)仿射变换-CGAffineTransform
仿射变换 AffineTransform,在iOS中他的实现类是CGAffineTransform和CATransform3D,很多动画效果都需要用到仿射去完成 所以仿射是动画基础,不能熟练使用也肯定玩不好动画特效的在iOS动画和特效专题(六)中有用到仿射变换的内容,这一篇专门来研究一下仿射变换,已经在iOS中的使用。在我写这章内容前我也 对仿射变换一无所知,也是查了一下资料作和看了许多别人的...转载 2018-09-14 17:19:53 · 747 阅读 · 0 评论 -
CoreAnimation编程指南之几何变换
本章介绍图层的几何组成部分,及他们之间的相互关,同时介绍如何变换矩阵可以产生复杂的视觉效果。 1.1 图层的坐标系图层的坐标系在不同平台上面具有差异性。在iOS系统中,默认的坐标系统原点在图层的中心左上角地方,原点向右和向下为正值。在Mac OS X系统中,默认的坐标系原点在图层的中心左下角地方,原点向右和向上为正值。坐标系的所有值都是浮点类型。你在任何平台上面创建的图层都采...转载 2018-09-14 17:25:58 · 149 阅读 · 0 评论 -
自定义动画改变背景颜色
@interface ViewController () @property (nonatomic, strong) CALayer *colorLayer; @end @implementation ViewController - (void)viewDidLoad { [super...原创 2018-09-15 10:49:33 · 664 阅读 · 0 评论 -
UIView没有暴露出来的CALayer功能
1.阴影,圆角,带色的边框 2.3d变化3.非矩形范围4.透明遮罩5.多级非线性动画原创 2016-01-25 22:32:56 · 448 阅读 · 0 评论 -
iOS核心动画高级技巧
目录的引用如下:https://zsisme.gitbooks.io/ios-/content/chapter4/layer-masking.html原创 2016-01-24 00:12:05 · 826 阅读 · 0 评论 -
iOS-Core-Animation-Advanced-Techniques(一)
图层树、寄宿图以及图层几何学(一)图层的树状结构巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角。Core Animation是一个复转载 2015-04-27 09:31:09 · 3754 阅读 · 0 评论 -
iOS-Core-Animation-Advanced-Techniques(三)
专用图层复杂的组织都是专门化的--Catharine R. Stimpson到目前为止,我们已经探讨过CALayer类了,同时我们也了解到了一些非常有用的绘图和动画功能。但是Core Animation图层不仅仅能作用于图片和颜色而已。本章就会学习其他的一些图层类,进一步扩展使用Core Animation绘图的能力。CAShapeLayer在第四章『视觉效果』我们转载 2015-04-27 09:32:12 · 5504 阅读 · 0 评论 -
iOS-Core-Animation-Advanced-Techniques(二)
(四)视觉效果嗯,园和椭圆还不错,但如果是带圆角的矩形呢?我们现在能做到那样了么?史蒂芬·乔布斯我们在第三章『图层几何学』中讨论了图层的frame,第二章『寄宿图』则讨论了图层的寄宿图。但是图层不仅仅可以是图片或是颜色的容器;还有一系列内建的特性使得创造美丽优雅的令人深刻的界面元素成为可能。在这一章,我们将会探索一些能够通过使用CALayer属性实现的视觉效果。转载 2015-04-27 09:33:17 · 3899 阅读 · 0 评论 -
iOS-Core-Animation-Advanced-Techniques(六)
基于定时器的动画和性能调优基于定时器的动画我可以指导你,但是你必须按照我说的做。 -- 骇客帝国在第10章“缓冲”中,我们研究了CAMediaTimingFunction,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控转载 2015-04-27 09:37:50 · 3686 阅读 · 0 评论 -
iOS-Core-Animation-Advanced-Techniques(四)
隐式动画和显式动画隐式动画按照我的意思去做,而不是我说的。 -- 埃德娜,辛普森我们在第一部分讨论了Core Animation除了动画之外可以做到的任何事情。但是动画师Core Animation库一个非常显著的特性。这一章我们来看看它是怎么做到的。具体来说,我们先来讨论框架自动完成的隐式动画(除非你明确禁用了这个功能)。事务Core Animatio转载 2015-04-27 09:36:06 · 3523 阅读 · 0 评论 -
iOS-Core-Animation-Advanced-Techniques(七)下
高效绘图、图像IO以及图层性能高效绘图不必要的效率考虑往往是性能问题的万恶之源。 ——William Allan Wulf在第12章『速度的曲率』我们学习如何用Instruments来诊断Core Animation性能问题。在构建一个iOS app的时候会遇到很多潜在的性能陷阱,但是在本章我们将着眼于有关绘制的性能问题。软件绘图术语绘图通常在Core An转载 2015-04-27 09:38:52 · 3689 阅读 · 0 评论 -
iOS-Core-Animation-Advanced-Techniques(七)上
高效绘图、图像IO以及图层性能高效绘图不必要的效率考虑往往是性能问题的万恶之源。 ——William Allan Wulf在第12章『速度的曲率』我们学习如何用Instruments来诊断Core Animation性能问题。在构建一个iOS app的时候会遇到很多潜在的性能陷阱,但是在本章我们将着眼于有关绘制的性能问题。软件绘图术语绘图通常在Core An转载 2015-04-28 21:42:44 · 4021 阅读 · 0 评论 -
CABasicAnimation动画
- (void)viewDidLoad { [superviewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _redLayer = [CALayerlayer]; [_redLayersetFrame:CGRect原创 2016-01-21 23:44:45 · 382 阅读 · 0 评论 -
rotationMode属性的强大
//create a path UIBezierPath *bezierPath = [[UIBezierPathalloc] init]; [bezierPath moveToPoint:CGPointMake(0,150)]; [bezierPath addCurveToPoint:CGPointMake(300,150) controlPoint1:原创 2016-01-22 00:02:47 · 1691 阅读 · 0 评论 -
repeatCount和repeatDuration
1. repeatCount _layer = [CALayerlayer]; [_layersetFrame:CGRectMake(300,50, 100,200)]; [_layersetBackgroundColor:[UIColorredColor].CGColor]; [self.view.layeraddSubla原创 2016-01-22 23:18:04 · 2821 阅读 · 0 评论 -
iOS 组透明
当你设置了一个图层的透明度,你希望它包含的整个图层树像一个整体一样的透明效果 又一下两方式可以做到1.你可以通过设置Info.plist文件中的UIViewGroupOpacity为YES来达到这个效果,但是这个设置会影响到这个应用,整个app可能会受到不良影响。如果UIViewGroupOpacity并未设置,iOS 6和以前的版本会默认为NO(也许以后的版本会有一些改变)(不推荐)原创 2016-01-23 23:20:24 · 798 阅读 · 0 评论 -
+imageNamed:方法
使用[UIImage imageNamed:]加载图片有个好处在于可以立刻解压图片而不用等到绘制的时候。但是[UIImage imageNamed:]方法有另一个非常显著的好处:它在内存中自动缓存了解压后的图片,即使你自己没有保留对它的任何引用。对于iOS应用那些主要的图片(例如图标,按钮和背景图片),使用[UIImage imageNamed:]加载图片是最简单最有效的方式。在nib文件转载 2016-01-23 23:39:37 · 870 阅读 · 0 评论 -
阴影,图层蒙板及圆角(当和maskToBounds一起使用时)影响TableView的性能
eg .在cell中添加 阴影cell.imageView.layer.shadowOffset = CGSizeMake(0, 5);cell.imageView.layer.shadowOpacity = 0.75;应当和shouldRasterize,rasterizationScale一起使用(shouldRasterize起到缓存的效果)cell.layer.shou原创 2016-01-23 23:02:16 · 2321 阅读 · 1 评论 -
解决layer层圆角引发的性能问题
有两种方式解决1.使用 shouldRasterize (之前有文章讲过)2.使用CAShapeLayer和UIBezierPath对2举例- (void)viewDidLoad{ [super viewDidLoad]; //create shape layer CAShapeLayer *blueLayer = [CAShapeLa原创 2016-01-24 00:05:24 · 2576 阅读 · 3 评论 -
iOS Core Animation---隐式动画
隐式动画这章我们介绍4个内容:事务、完成块、图层行为以及呈现与模型; 其实我们需要掌握的还有隐式动画的实现原理、UIKit怎样禁用了关联图层的隐式动画等等。一、隐式动画的理解 Core Animation基于一个假设,说屏幕上的任何东西都可以(或者可能)做动画。动画并不需要打开,相反需要明确地关闭,否则他会一直存在。当你改变CALayer的一个可做动画的属性,它并不能立刻在屏幕上体现出来。...转载 2018-09-15 11:54:39 · 258 阅读 · 0 评论