首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从当前位置反转CABasicAnimation (类似于进度条动画)

从当前位置反转CABasicAnimation (类似于进度条动画)的实现方式是通过改变动画的起始值和终止值来实现反转效果。具体步骤如下:

  1. 创建一个CABasicAnimation对象,并设置动画的属性和目标值。例如,如果要创建一个进度条动画,可以设置动画的属性为"strokeEnd",目标值为1(表示动画结束时的进度条长度)。
  2. 设置动画的起始值为当前位置的值。可以通过读取当前位置的属性值来获取。
  3. 设置动画的终止值为起始值。这样就实现了反转效果。
  4. 将动画添加到需要应用动画的图层上。例如,如果要应用动画到一个进度条的图层上,可以使用CALayer的addAnimation:forKey:方法将动画添加到图层上。

以下是一个示例代码,演示如何从当前位置反转CABasicAnimation:

代码语言:txt
复制
// 创建CABasicAnimation对象
let animation = CABasicAnimation(keyPath: "strokeEnd")
animation.toValue = 1

// 获取当前位置的值
let currentValue = layer.strokeEnd

// 设置动画的起始值和终止值
animation.fromValue = currentValue
animation.toValue = currentValue

// 将动画添加到图层上
layer.add(animation, forKey: "reverseAnimation")

这样,动画就会从当前位置开始,然后反转回到当前位置,实现了类似进度条动画的效果。

推荐的腾讯云相关产品:腾讯云视频处理服务(视频处理、转码、截图、水印等)。

产品介绍链接地址:https://cloud.tencent.com/product/vod

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS学习——核心动画

核心动画所在的位置如下图所示,可以看到,核心动画位于UIKit的下一层,相比UIView动画,它可以实现更复杂的动画效果。 ?...开始延迟几秒的话,设置为CACurrentMediaTime() + 秒数 的方式 timingFunction 设置动画的速度变化 fillMode 动画在开始和结束时的动作,默认值是 kCAFillModeRemoved...anim.duration = 0.25; //设置动画自动反转(怎么去, 怎么回) anim.autoreverses = YES; //添加动画 [self.heartView.layer...300, 400)]; anim.path = path.CGPath; //设置执行的次数 anim.repeatCount = MAXFLOAT; //设置是否反转...",//摄像头关闭效果,动画方向不可控 subtype:设置转场方向 //转场方向,系统一共提供四个方向: //kCATransitionFromRight//右开始 //kCATransitionFromLeft

1.2K50

iOS动画三板斧(二)--CoreAnimation动画介绍使用附加

1.CABasicAnimation CABasicAnimation动画主要是设置某个动画属性的初始值fromValue和结束值toValue,来产生动画效果。...duration 动画的时长。 fromValue和toValue 是CABasicAnimation的属性,都是id类型的,所以要将基本类型包装成对象。...示例代码可能与gif图不太一致,因为gif图是其他demo中录制下来的。...方法二:绘制圆弧路径,参数1是中心点位置,参数2是半径,参数3是开始的弧度值,参数4是结束的弧度值,参数5是是否顺时针(YES是顺时针方向,NO逆时针)。 方法三:根据某个路径绘制路径。...进度条.gif 上图这样的视图是用UIBezierPath用多个CAShapeLayer制作出来的,而动画效果只需要改变进度的layer的strokeEnd和修改下面代表水面进度的视图位置即可。

1.1K40
  • iOS 动画基础总结篇

    //转场左翻转 UIViewAnimationOptionTransitionFlipFromRight //转场右翻转 UIViewAnimationOptionTransitionCurlUp...开始延迟几秒的话,设置为【CACurrentMediaTime() + 秒数】 的方式 timingFunction 设置动画的速度变化 autoreverses 动画结束时是否执行逆动画 fromValue...所改变属性的起始值 toValue 所改变属性的结束时的值 byValue 所改变属性相同起始值的改变量 */ //CABasicAnimation 最终不会修改其属性 只是为了做动画使用...; // 设置动画的执行时长 anim.duration = 0.1; // 设置动画的自动反转效果 anim.autoreverses = YES; anim.removedOnCompletion...其实动画组合无非就是多种动画作用在一个view上面达到的效果 例如 组合动画.gif 动画组合 // 动画组合 CABasicAnimation *positionAnima = [CABasicAnimation

    1.1K50

    iOS动画-CAAnimation使用详解

    duration的一半) timeOffset CFTimeInterval 动画时间偏移量;(设置时长3秒动画的timeOffset为1时,动画1秒位置执到最后,再执行之前跳过的部分) repeatCount...,对两个属性都设置非0值的行为没有被定义; autoreverses BOOL 动画初始值执行到最终值,是否会反向回到初始值;(设置为YES,动画完成后将以动画的形式回到初始位置) fillMode...NSStrinng 决定当前对象在非动画时间端段的动画属性值,如动画开始之前和动画结束之后 1.fillMode详细说明 试想这样一个问题:在beginTime非0(即动画未真正执行之前),以及removeOnCompletion...,取值范围是[0,1];若没有设置keyTimes,则每个关键帧的时间是平分动画总时长(duration); timingFunctions 用于指定每个关键帧之间的动画缓冲效果,这类似于物体运动的加速度...CALayer有一个-renderInContenxt:方法,通过它可以将图层绘制到Core Graphics的上下文中捕获当前内容的图片;所以现在我们尝试这样的实现:对当前视图控制器View进行截图,

    2.3K10

    iOS开发CoreAnimation解读之四——Layer层动画内容

    animationWithKeyPath:(nullable NSString *)path; //这个属性确定动画执行的状态是否叠加在控件的原状态上 //默认设置为NO,如果我们执行两次位置移动的动画...,会同一位置执行两次 //如果设置为YES,则会在第一次执行的基础上执行第二次动画 @property(getter=isAdditive) BOOL additive; //这个属性对重复执行的动画有效果...,举例如下,一个绕Z轴旋转的动画:  //绕z轴旋转的动画     CABasicAnimation * ani = [CABasicAnimation animationWithKeyPath:@"transform...+byValue byValue和toValue不为空:动画的值由toValue-byValue变化到toValue 只有fromValue不为空:动画的值由fromValue变化到layer的当前状态值...只有toValue不为空:动画的值由layer当前的值变化到toValue 只有byValue不为空:动画的值由layer当前的值变化到layer当前的值+byValue 4.CAKeyframeAnimation

    99610

    再谈CAAnimation动画

    CAAnimaton动画分为CABasicAnimation & CAKeyframeAnimation CABasicAnimation动画, 顾名思义就是最基本的动画, 老规矩先上代码: //1.先创建一个要执行动画的...位移动画 CABasicAnimation *basicAnimation = ({ CABasicAnimation *animation = [CABasicAnimation...repeatCount, 动画重复次数, 默认不重复 beginTime, 动画延时 toValue, 动画最后的位置 注意时NSValue封装 还有一个fromValue, 动画开始的位置, 不设置的话就是...View当前位置 下面时用CABasicAnimation写的动画修改圆角的动画, 把一个正方形慢慢变成圆形 CABasicAnimation *basicAnimation2 = ({...关于UIBezierPath后面会再单独 然后我们说下动画组, CAAnimation是可以几个动画合并在一起的 上代码: //2.2 创建CABasicAnimation动画 CABasicAnimation

    96230

    绘图-CAShapeLayer、CABasicAnimation以及核心动画

    timeOffset -> 动画时间偏移量。比如设置动画时长为3秒,当设置timeOffset为1.5时,当前动画会从中间位置开始,并在到达指定位置时,走完之前跳过的前半段动画。...byValue -> 在不设置toValue时, toValue = fromValue + byValue,也就是在当前位置上增加多少。...byValue 和toValue,那么动画就会toValue - byValue过渡到toValue; 如果只设置了fromValue,那么动画就会fromValue过渡到当前的value...; 如果只设置了toValue ,那么动画就会当前的value过渡到toValue; 如果只设置了byValue ,那么动画就会当前的value过渡到当前...在这个动画里,是设置了要旋转到的弧度,根据以上规则,动画将会当前的弧度专旋转到我设置的弧度.

    2.8K30

    CAAnimation 核心动画概念一、 CAAnimation二、 CAPropertyAnimation三、CABasicAnimation(基本动画)CAPropertyAnimation的子类

    如果想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置fillMode属性为kCAFillModeForwards fillMode:决定当前对象在非active时间段的行为.比如动画开始之前...,动画结束之后 beginTime:可以用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2,CACurrentMediaTime()为图层的当前时间 timingFunction...: keyPath相应属性的结束值,到某个固定的值(类似transform的make含义) 注意:随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值fromValue...(100,100) 这个位置,实质上图层的position还是为(0,0); byValue:不断进行累加的数值(类似transform非make方法的含义) 例子: CABasicAnimation...向组动画中添加各种子动画 // 2.1 旋转 CABasicAnimation *anim1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z

    1.9K90

    iOS动画专题·UIView二维形变动画与CAAnimation核心动画(transform动画,基础,关键帧,组动画,路径动画,贝塞尔曲线)

    1. iOS动画 总的来说,涉及类的形式来看,iOS动画有:基于UIView的仿射形变动画,基于CAAnimation及其子类的动画,基于CG的动画。这篇文章着重总结前两种动画。 2....UIView动画 设置UIView形变动画有两种常见用到的属性,.frame,.transform,所以有的人也可以分别称之为: ① frame动画 ② transform动画 这两种动画只需要在动画语法中适当的位置...如果想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置fillMode为kCAFillModeForwards *fillMode:决定当前对象在非active时间段的行为。...比如动画开始之前或者动画结束之后 *beginTime:可以用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2,CACurrentMediaTime()为图层的当前时间...旋转动画 -- transform.rotation.z //风车旋转动画 CABasicAnimation *rotationAnimation = [CABasicAnimation

    3.3K21

    疯狂ios讲义之使用CoreLocati

    9.3  方向监测 拥有GPS硬件的设备可以生成设备的当前方向(course属性)和速度信息。...需要指出的是,并不是所有的iOS设备都支持heading属性,iPhone 3gs开始引入了磁力计,因此程序在获取方向之前需要先测试该设备是否支持heading。...需要说明的是,trueHeading属性需要与位置探测功能一起使用,iOS系统需要设备的位置来计算确定真北所需要的偏差。...CABasicAnimation* anim = [CABasicAnimation animationWithKeyPath:@"transform"]; CATransform3D...系统会自动激发CLLocationManager设置delegate的locationManager:didUpdateHeading:方法,程序的视图控制器重写了该方法,并在该方法中获取设备方向,然后将图片“反转

    85300

    basicAnimation移动图形

    目的:采用CABasicAnimation  点击屏幕上的点来是实现图像的位置移动  并且位置能够不反弹     难点:1 通过动画的KeyPath找到layer的属性             2 通过...取值的时候是【toValue CGPoint】; 注意点:当图像移动了 其实真正的涂层是没有移动的 要想让它真正的发生改变 一般在动画之后做一些具体的移动位置之类的操作 效果图: ?...  第一个点不设置的话就是当前点  有属性toValue表示下一点(目的点)  还有就是一定要记得给动画设置代理  */ 实现手势的代码: -(void)tap:(UITapGestureRecognizer...]; //创建动画 并设置其属性 CABasicAnimation *basic = [[CABasicAnimation alloc]init]; //动画时间 和 keyPath...*toValue = ((CABasicAnimation*)anim).toValue; self.subLayer.position = [toValue CGPointValue]; }

    63290

    iOS动画系列之四:基础动画之平移篇2. 创建不同速度控制的动画3. Swift版本的部分差异

    2, 设置CALayer的位置、大小、背景颜色。 3, 将自定义的CALayer添加到主视图的view上面。 4, 实例化一个CABasicAnimation对象。...5, 设置动画属性为平移。 6, 设置动画的起始位置哪里到哪里。 7,设置动画的持续时间、填充模式、重复次数、设置代理。 8, 将动画添加到需要作用的CALayer上面。...------------------------*/ //创建动画对象 CABasicAnimation *basicAni = [CABasicAnimation animation...也就是动画哪里到哪里 basicAni.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, 0)]; //动画结束后,layer...也就是动画哪里到哪里 basicAni.fromValue = [NSValue valueWithCGPoint:fromValue]; //动画结束后,layer所在的位置

    2.8K20

    iOS开发UI篇--iOS动画(Core Animation)总结

    你只需要配置少量的动画参数(如开始点的位置和结束点的位置)即可使用Core Animation的动画效果。...kCATransitionFromRight 右侧进入 kCATransitionFromLeft 左侧进入 kCATransitionFromTop 顶部进入 kCATransitionFromBottom...效果演示: 位移动画代码演示: //使用CABasicAnimation创建基础动画 CABasicAnimation *anima = [CABasicAnimation animationWithKeyPath...subtype:动画过渡方向 kCATransitionFromRight 右侧进入 kCATransitionFromLeft 左侧进入 kCATransitionFromTop 顶部进入 kCATransitionFromBottom...底部进入 startProgress:动画起点(在整体动画的百分比) endProgress:动画终点(在整体动画的百分比) 效果演示: 4.5:综合案例 4.5.1 : 仿Path菜单效果 效果演示

    1.7K00

    Objective-C 使用核心动画CAAnimation实现动画先来看看效果吧Demo地址

    动画效果.gif 整个核心动画就不多做介绍了,随便一搜就能有很多很详细的解释,主要使用以下四种 CABasicAnimation //经典动画 CAKeyframeAnimation...分解 看做两个view 一个是播放面板的小圆 一个是整个控制面板 播放面板的曲线运动 使用核心动画中的 CAKeyframeAnimation 播放面板的变大缩小、控制面板消失出现 使用CABasicAnimation...//startView变小 - (void)startViewChangeSmaller { //设置一组动画 //变小 CABasicAnimation *animation1...选择锚点工具拖动锚点变换曲线.png 知道控制点的大概位置这样我们就能定义控制点坐标了。 最后的小贴士:view超出superview的范围了怎么办?...很简单给当前view添加一个响应函数 //响应超出view的事件 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {

    97930

    iOS 支付宝首页拖放按钮效果实现

    self.frame.origin.x + _prePoint.x, self.frame.origin.y + _prePoint.y)]; } #pragma mark - 按钮调整 /*  * 判断当前按钮位置是否变化...    if (_indexOfArray < index) {         // 将上一个按钮的位置赋值给当前按钮         [UIView animateWithDuration:0.5...buttonArray objectAtIndex:index]).indexOfArray = index;     }     else { // 将靠后的按钮移动到前边         // 将上一个按钮的位置赋值给当前按钮... *)moveX:(float)time X:(NSNumber *)x  // 横向移动 {     CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath... *)moveY:(float)time Y:(NSNumber *)y  // 纵向移动 {     CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath

    50920
    领券