首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一“技”之长

    iOS开发CoreAnimation解读之五——高级动画技巧

    iOS开发CoreAnimation解读之五——高级动画技巧 一、事务类         CoreAnimation中还有一个非常重要的类:CATransaction事物类,这个可以同时设置多个layer 二、CATransaction属性         对layer层的属性操作,都会形成隐式动画,要使用隐式动画,需要关闭layer层的animation动画属性,使用下面的方法: //关闭animation 动画效果,开启隐式动画 + (BOOL)disableActions; + (void)setDisableActions:(BOOL)flag; CATransaction用类方式通过设置key-value  begin];     [CATransaction setValue:@1 forKey:kCATransactionAnimationDuration];     layer.backgroundColor  = [UIColor blueColor].CGColor;     [CATransaction commit]; 专注技术,热爱生活,交流技术,也做朋友。

    91210发布于 2018-08-16
  • 来自专栏日常技术分享

    ios 圆形进度条

    NSTextAlignmentCenter; [self addSubview:self.progressLabel]; } - (void)updateProgress:(CGFloat)progress { [CATransaction begin]; [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn ]]; [CATransaction setAnimationDuration:0.5]; self.progressLayer.strokeEnd = progress / 100.0 ; [CATransaction commit]; self.progressLabel.text = [NSString stringWithFormat:@"%.0f",progress

    1.7K40发布于 2018-09-13
  • 来自专栏梧雨北辰的开发录

    iOS动画-CALayer隐式动画原理与特性

    事务是通过CATransaction类来做管理,它没有属性或者实例方法,而且也不能通过alloc和init去创建它,它的常用操作如下: //1.动画属性的入栈 + (void)begin; //2.动画属性出栈 现在,我们就通过事务来设置动画做一个验证,代码如下: - (IBAction)changeColor:(UIButton *)sender{ [CATransaction begin]; // 入栈 //1.设置动画执行时间 [CATransaction setAnimationDuration:3]; //2.设置动画执行完毕后的操作:颜色渐变之后再旋转90度 [CATransaction setCompletionBlock:^{ CGAffineTransform transform = self.colorLayer.affineTransform + (void)setDisableActions:(BOOL)flag; UIView关联的图层禁用了隐式动画,那么对这种图层做动画的方法有有了以下几种方式: 使用UIView的动画函数(而不是依赖CATransaction

    5.2K51发布于 2019-04-25
  • 来自专栏滕先生的博客

    CALayer 图层概念二、CALayer属性二、方法

    可以通过动画事务 (CATransaction) 关闭默认的隐式动画效果. 代码参考如下 : [CATransaction begin]; [CATransaction setDisableActions:YES]; // your code … [CATransaction commit]; UIView和CALayer的选择. ) [CATransaction begin]; [CATransaction setDisableActions:YES]; //your code …e.g.: self.myview.layer.position = CGPointMake(10, 10); [CATransaction commit]; 3D放射形变属性(和view的transform用法一样,也有make和非make方法) @property

    2.1K70发布于 2018-05-18
  • 来自专栏iOS开发干货分享

    Core Animation总结

    CATransaction事务类 CATransaction事务类可以对多个layer的属性同时进行修改,它分隐式事务,和显式事务。 0.0 CATransaction.commit() 使用事务的主要原因之一是在显式事务的范围内,我们可以更改持续时间,计时功能和其他参数。 CATransaction.begin() CATransaction.setValue(8.0, forKey: "animationDuration") //执行动画 CATransaction.commit 嵌套显式事务代码 //事务嵌套 CATransaction.begin() // 外部transaction CATransaction.setValue(2.0, forKey: "animationDuration ") layer.position = CGPoint(x: 140, y: 140) CATransaction.begin() // 内部transaction CATransaction.setValue

    1.7K10发布于 2019-05-21
  • 来自专栏全栈程序员必看

    position和anchorPoint

    ); 38 self.layer.backgroundColor=[UIColor yellowColor].CGColor; 39 } 40 @end 效果: 关闭隐式动画: 1 [CATransaction begin]; 2 [CATransaction setDisableActions:YES]; 3 //隐式动画 4 self.layer.bounds=CGRectMake(0, 0, 200, 60); 5 self.layer.backgroundColor=[UIColor yellowColor].CGColor; 6 [CATransaction commit]; 3.如何查看CALayer

    77940编辑于 2022-11-08
  • 来自专栏EasyNVR

    网页无插件视频流媒体播放器EasyPlayerPro-IOS版如何解决有声音无画面的问题?

    解决问题 1、在IJKSDLGLView.m文件中,- (BOOL)setupEAGLContext:(EAGLContext *)context 方法中添加代码: [CATransaction flush 2、在- (void)displayInternal: (SDL_VoutOverlay *) overlay 方法中也添加代码: [CATransaction flush]; ?

    1.1K30发布于 2020-09-01
  • 来自专栏非典型技术宅

    iOS动画系列之一:带时分秒指针的时钟动画(上)1. 最终实现的效果以及思维导图2. CALayer3. 隐式动画

    修改这个属性会产生平移动画 3.2 关闭隐式动画 可以通过动画事务(CATransaction)关闭默认的隐式动画效果 关闭或者修改隐式动画的步骤: 开启动画事物 关闭动画效果或者修改动画事件 设置动画完成后的动作 (可以不设置) 修改属性 提交 //开启 [CATransaction begin]; //关闭动画 [CATransaction setDisableActions:YES]; //修改属性 self.myview.layer.position = CGPointMake(10, 10); //提交 [CATransaction commit]; 宝贝儿们,我错了。

    2.6K30发布于 2018-06-28
  • 来自专栏xx_Cc的学习总结专栏

    iOS-核心动画详解之CALayer

    因此我们自己开启事务,并在事物中设置没有动画就会隐藏动画了 //开启事务 [CATransaction begin]; //设置事务没有动画 [CATransaction setDisableActions :YES]; //设置动画执行的时长 [CATransaction setAnimationDuration:2]; //这其中修改属性就没有动画了 //提交事务 [CATransaction

    2.5K60发布于 2018-05-10
  • 来自专栏老司机的简书

    老司机带你走进Core Animation 之CAShapeLayer和CATextLayer

    知道原因就好办了,我们可以通过 CATransaction显式的关闭他的动画,恢复成0,再打开动画,是不是就行了?哈哈哈,就是这么简单。 [CATransaction begin]; [CATransaction setDisableActions:YES]; self.layer.strokeEnd = 0; [CATransaction setDisableActions:NO]; [CATransaction commit]; ---- 坑填完了,看截图你们也知道老司机是熬夜给你们码字的吧,是时候点波赞?

    1.9K20发布于 2018-08-22
  • 来自专栏技术总结

    YYImage框架瞧一瞧

    2、返回的图片被分配给UIImageView 3、接着一个隐式的 CATransaction 捕获到了图层树的变化; 4、在主线程的下一个 run loop到来时,Core Animation 提交了这个隐式的事务 大都走的是 CATransaction 的隐式事务自己更新 if (!hasContentsRect && _curImageHasContentsRect) { if (! CGRectEqualToRect(self.layer.contentsRect, CGRectMake(0, 0, 1, 1)) ) { [CATransaction begin ]; [CATransaction setDisableActions:YES]; self.layer.contentsRect = CGRectMake (0, 0, 1, 1); [CATransaction commit]; } } _curImageHasContentsRect = hasContentsRect

    2.6K30发布于 2018-09-30
  • 来自专栏正则

    iOS Core Animation:Advanced Techniques

    事务是通过CATransaction类来做管理,CATransaction没有属性或者实例方法,并且也不能用+alloc和-init方法创建它。 使用CATransaction控制动画时间 - (IBAction)changeColor { //begin a new transaction [CATransaction begin UIView有两个方法,+beginAnimations:context:和+commitAnimations,和CATransaction的+begin和+commit方法类似。 如果在清单7.2的[CATransaction begin]之后添加下面的代码,同样也会阻止动画的发生: [CATransaction setDisableActions:YES]; 总结一下,我们知道了如下几点 [CATransaction commit]; } } 总结: 这一章讨论了隐式动画,还有Core Animation对指定属性选择合适的动画行为的机制。

    2.5K30发布于 2021-09-02
  • 来自专栏mukekeheart的iOS之旅

    iOS学习——核心动画之Layer基础

    //开启事务 [CATransaction begin]; //设置事务没有动画 [CATransaction setDisableActions:YES]; //设置动画执行的时长 [CATransaction setAnimationDuration:2]; //提交事务 [CATransaction commit]; 10、时钟效果 10.1 搭建界面   界面上时针、分针、秒针不需要与用户进行交互

    2.1K61发布于 2018-08-01
  • 来自专栏谦谦君子修罗刀

    贝塞尔曲线之爱琴海 -- 定不负相思意

    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag { //核心动画事物,必须要在事物中进行 [CATransaction begin]; [CATransaction setCompletionBlock:^{ //UIViewAnimationOptionTransitionCrossDissolve是指旧视图溶解消失显示下一个新视图的效果 不然爱心会一直停留在屏幕上 [self removeFromSuperview]; } }]; }]; [CATransaction

    1K100发布于 2018-05-02
  • 来自专栏iOS技术

    YYAsyncLayer 源码剖析:异步绘制

    四、YYTransaction YYTransaction 貌似和系统的 CATransaction 很像,他们同为“事务”,但实际上很不一样。 通过 CATransaction 的嵌套用法猜测 CATransaction 对任务的管理是使用的一个栈结构,而 YYTransaction 是使用的集合来管理任务。 true, // repeat 0xFFFFFF, // after CATransaction 而该 oberver 的优先级是 0xFFFFFF,优先级在 CATransaction 的后面(至于 CATransaction 的优先级为什么是 2000000,应该在主线程 RunLoop 启动的源代码中可以查到

    1.2K30发布于 2018-08-02
  • 来自专栏移动端开发

    iOS - QuartzCore

    /// CATiledLayer为载入大图造成的性能问题提供了一个解决方案 https://www.jianshu.com/p/ee0628629f92 import QuartzCore.CATransaction /// CATransaction是 Core Animation 中的事务类 https://www.jianshu.com/p/5e02a8a56cc5 import

    1.1K10发布于 2020-06-19
  • 来自专栏iOS技术

    YYImage 源码剖析:图片处理技巧

    1、加载和解压 一般使用imageNamed:或者imageWithData:从内存中加载图片生成UIImage的实例,此刻图片并不会解压,当 RunLoop 准备处理图片显示的事务(CATransaction CGRectEqualToRect(self.layer.contentsRect, CGRectMake(0, 0, 1, 1)) ) { [CATransaction begin ]; [CATransaction setDisableActions:YES]; self.layer.contentsRect = CGRectMake (0, 0, 1, 1); [CATransaction commit]; } } _curImageHasContentsRect = hasContentsRect setNeedsDisplay]; [self didMoved]; } 值得提出的是,1 中归位self.layer.contentsRect为CGRectMake(0, 0, 1, 1)使用了CATransaction

    1.7K41发布于 2018-08-02
  • 来自专栏程序员——iOS开发

    从案例出发,由浅到深了解 iOS 动画

    animation.completionClosure = completion if let layerAnimations = animations { CATransaction.begin () CATransaction.setDisableActions(true) layerAnimations() CATransaction.commit() } animationGroup = groupAnimationsForDifferences(oldLayer

    1.1K30发布于 2019-11-07
  • 来自专栏iOSer成长记录

    iOS-Core系列框架介绍(一)

    动画(属性动画、关键帧动画等) import QuartzCore.CABase import QuartzCore.CAAnimation // 几何变换相关 import QuartzCore.CATransaction

    1.2K30发布于 2018-06-29
  • 来自专栏娱乐心理测试

    SDWebImage源码解读(一)

    假设我们使用 +imageWithContentsOfFile: 方法从磁盘中加载一张图片,这个时候的图片并没有解压缩; 然后将生成的 UIImage 赋值给 UIImageView ; 接着一个隐式的 CATransaction

    86430发布于 2018-08-02
领券