一个扇形的动画效果

用cashapelayer和core animation实现的一个扇形的动画效果。

直接贴代码 可以让cashapelayer跟着动画里面的一个path动态的绘图

-(void)addarcanimation
{
    CAShapeLayer *linelayer=[CAShapeLayer layer];
    linelayer.strokeColor=[[UIColor colorWithRed:0.400 green:1.000 blue:1.000 alpha:1.000] CGColor];
    linelayer.fillColor=nil;//不能动态填充,你可以试试把设置个颜色,把linewidth设置小一些 看有什么效果。
    linelayer.lineWidth=40.0f;//线条宽度必须设高一点,设低了就是空心的
    linelayer.lineCap=kCALineCapButt;
    [self.view.layer addSublayer:linelayer];
//把layer插入你需要绘图的layer

    float x=self.view.bounds.size.width/2;
    float y=self.totaltimelable.frame.origin.y+self.totaltimelable.frame.size.height+(self.xuanzeLable.frame.origin.y-(self.totaltimelable.frame.origin.y+self.totaltimelable.bounds.size.height))/2;

    float radius=(self.xuanzeLable.frame.origin.y-(self.totaltimelable.frame.origin.y+self.totaltimelable.bounds.size.height))/2/2-5;

    UIBezierPath *path=[UIBezierPath bezierPathWithArcCenter:CGPointMake(x, y) radius:radius startAngle:0 endAngle:M_PI*2*[self totalworktimeproportionoftotaltime] clockwise:YES];

    linelayer.path=path.CGPath;//把layer的path设为动画里尼创建的path 必须是cgpath类型

    CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"strokeEnd"];

    animation.duration=1.0f;

    animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];

    animation.fromValue=[NSNumber numberWithFloat:0.0f];

    animation.toValue=[NSNumber numberWithFloat:1.0f];

    animation.autoreverses=NO;

    animation.fillMode=kCAFillModeForwards;

    animation.repeatCount=1;

    [linelayer addAnimation:animation forKey:@"strokeEndAnimation"];

    linelayer.strokeEnd=1.0f;
    //一定要把strokeEnd是什么搞清楚,它代表了layer的绘制程度,从0到1,0的话就是什么都不绘制,1的话就是完全绘制。

}
时间: 2024-12-15 01:39:26

一个扇形的动画效果的相关文章

写一个android带动画效果的TabHost(类似微博客户端的切换效果)

先上图: 这个Layout是: <?xml version="1.0" encoding="UTF-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" andro

Scratch—实现一个按钮的动画效果

上次介绍了利用克隆体操作生成菜单按钮,今天讲一讲如何让一个按钮具有动画的效果:当鼠标移到某个按钮上面时,显示动画效果 让菜单按钮有虚像效果 让菜单具有逐渐变大的效果 改变菜单按钮的颜色 其他的特效都是类似实现,大家可以试一试.编程本身就是一门动手实践的课程,大家要多动动手. 原文地址:https://www.cnblogs.com/scratch3/p/10935783.html

一个简单hover动画效果

HTML: <div id="demo1" class="demo">demo1</div> <div id="demo2" class="demo">demo2</div> CSS: .demo { width: 100px; height: 100px; text-align: center; line-height: 100px; border: 10px solid #c

android 给LinearLayout中添加一定数量的控件,并让着一定数量的控件从右到左移动,每隔若干秒停顿一下,最后一个view链接第一个view,然后继续移动循环往复,形成一个死循环简单动画效果

主类:IndexAnimationLinearLayout.java package com.yw.sortlistview; import java.util.ArrayList; import java.util.List; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.os.Handler; impo

代码:一个简单css3动画效果demo

四行文字会逐次掉落: <style type="text/css"> @-webkit-keyframes fadeInDown1 { 0% { -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); opacity: 0; } 100% { -webkit-transform: none; transform: none; opacity: 1; } } .div1

一个有趣的动画效果

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ width: 200px; height: 200px; margin: 100px auto; background-color:rgba(255,0,0,.7); border-radi

CSS3使用Animation为同一个元素添加多个动画效果

本篇文章由:http://xinpure.com/css3-animation-for-the-same-element-multiple-animation-effects/ CSS3 Animation 并未提供 给一个元素同时添加多个动画效果的方法,就是说一个元素,只能给它定义一个动画效果,不能同时定义. 需求说明 比如说,我想实现一个这样的动画效果: 一颗星星从上往下滑落,当滑落到指定位置时开始闪烁 这里就用到了两个动画效果: 1. 从上往下滑落 (单次动画) 2. 闪烁 (循环动画)

使用模块化管理工具seajs实现简单动画效果

今天使用模块化的管理工具seajs实现了一个简单的动画效果. seajs具有简单友好的模块定义规范.seajs遵循CMD规范,可以像nodejs一样编写代码. seajs具有自然直观的代码组织方式.依赖的自动加载,配置简洁清晰. 通过学习,发现seajs的使用是具有一个标准的格式的,如下define(function(require,exports,module){ //定义的代码块 });其中回调的参数名和顺序都是不可改变的. 这次小动画实现的文件结构: word.html代码如下: 1 <!

ios开发之--简单动画效果的添加

记录一个简单的动画效果,自己写的,很简单,仅做记录. 附一个demo的下载地址: https://github.com/hgl753951/hglTest.git 代码如下: 1,准备 BOOL _isOpen; NSMutableArray * _btnArray; 2,具体代码 -(void)initUI { _btnArray = [[NSMutableArray alloc]init]; for (int i=0; i<4; i++) { UIButton * btn = [UIButt