苹果开机经典滑动动画

1首先定义

@interface ViewController ()
{
    CAGradientLayer* _gridentlayer;
}
@end

2 在viewDidLoad中实现

//这里出现了CALayer的另一个子类CAGradientLayer,这个类的作用就是能在Layer上绘制出渐变颜色的效果,然后在viewDidLoad()中添加如下代码:
    _gridentlayer = [[CAGradientLayer alloc] init];
    _gridentlayer.bounds=CGRectMake(0, 0,self.backgroundView.frame.size.width, self.backgroundView.frame.size.height);
    _gridentlayer.position=CGPointMake(self.backgroundView.frame.size.width/2, self.backgroundView.frame.size.height/2);
    //    gradientLayer.colors = [
    //UIColor.blackColor().CGColor,
   // UIColor.whiteColor().CGColor,
   // UIColor.blackColor().CGColor
   // ]
    //上述两行的代码是设置Layer的大小及位置
    [_gridentlayer setStartPoint:CGPointMake(0, 0.5)];
    [_gridentlayer setEndPoint:CGPointMake(1, 0.5)];
    /**
     CAGradientLayer的colors属性类型是一个数组[AnyObject],这就意味着我们可以实现多个颜色的渐变效果,并且可以规定各个颜色的顺序。不过在我们这个示例中我们只需要两种颜色,不过需要注意的是虽然颜色只有两种,但是整个颜色渐变的过程中有三个原色点,那就是黑、白、黑,所以我们在这个数组中也需要按照原色点的数量和顺序添加相应的颜色,哪怕颜色都是一样的。
     
     我们既然设置了渐变的三个原色,那么就要对这原色出现的位置进行设置,接着添加如下代码:
     */
    [_gridentlayer setColors:[NSArray arrayWithObjects:(id)[UIColor blackColor].CGColor,(id)[UIColor whiteColor].CGColor,(id)[UIColor blackColor].CGColor, nil]];
    [_gridentlayer setLocations:@[@0.2 ,@0.5,@0.8]];
    [self.backgroundView.layer addSublayer:_gridentlayer];

}

-(void)viewDidAppear:(BOOL)animated{
    [self gradinetAnimate];
}
-(void)gradinetAnimate{
//      [email protected]"caoxiang";
//    _gridentlayer.mask=self.textlabel.layer;
    // 首先,创建了一个locations类型的动画实例gradient,将fromValue属性,也就是起始位置的属性设置为[0, 0, 0.25],它的意思是动画开始前,黑色、白色这两个原色的位置在整个Layer的最前端,第二个黑色原色在0.25的位置:
    CABasicAnimation * animation=[CABasicAnimation animationWithKeyPath:@"locations"];
    [animation setFromValue:@[@0,@0,@0.25]];
     [animation setToValue:@[@0.75,@1,@1]];
    //而结束位置toValue,将白色和第二个黑色原色位置设置在整个Layer的末端,第一个黑色原色在0.75的位置:
   // 从图中可以看出,此时整个Layer都变成了黑色。也就是说,在整个动画中,第一个黑色原色从0移动到0.75的位置,白色原色从0移动到1的位置,第二个黑色原色从0.25移动到1的位置。然后设置动画时间为2秒,无线重复次数,最后将gradient动画添加到gradientLayer中。我们在viewDidAppear()方法中调用该动画方法gradientAnimate(),编译运行看看效果:
    animation.duration=2;
    animation.repeatCount=HUGE;
    [_gridentlayer addAnimation:animation forKey:nil];
    [email protected]"hahahahaha";
    _gridentlayer.mask=self.textlabel.layer;
}

效果图:

时间: 2024-10-27 10:52:50

苹果开机经典滑动动画的相关文章

导航菜单滑动动画

用jquery实现百度新闻导航菜单滑动动画 前言 前两天,群里有人问百度新闻导航是如何实现的,当时由于忙于工作,没有来得及细看,恰好今天有空闲时间,索性就实现一下这个效果吧: 思路与步骤 1.利用UL创建简单横向导航: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&g

不用animate滑动动画

-webkit-transition:all 0.2s ease-in-out; -moz-transition:all 0.2s ease-in-out; -o-transition:all 0.2s ease-in-out; -ms-transition:all 0.2s ease-in-out; 不用animate滑动动画,布布扣,bubuko.com

15、导航滑动动画

在触屏设备上,手指滑动页面,或者单击导航选项时,增加导航下横线滑动的效果: 这个版本有点简单粗暴,同事在项目中优化了一下算法.这里只是简单记录一下大致思路: 1.导航使用 ListView 控件,下面使用 Pivot 控件 大致结构为: 页面中的 ListView: <ListView x:Name="listview" VerticalAlignment="Top" Margin="0,40,0,0" Background="W

jQuery 代码的层定位滑动动画效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery层动画定位滑动</tit

利用jquery实现百度新闻导航菜单滑动动画

前言 前两天,群里有人问百度新闻导航是如何实现的,当时由于忙于工作,没有来得及细看,恰好今天有空闲时间,索性就实现一下这个效果吧: 思路与步骤 1.利用UL创建简单横向导航: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&quo

Android 开发第三弹:自定义左右菜单(滑动动画+蒙版效果)

下面的截图--哎,因为1080P在Windows 10上虽然适配了,但大部分软件并没有跟上,比如某个录制GIF的软件,所以这里有一定的偏移导致画面不完整,但效果大概就是这么一个效果了. MainUI.java 首先需要这么一个类,在这里一些UI的滑动呀之类的都会定义.首先吧,定义好这些变量,当然了,实际开发过程中肯定需要哪一个就添加上哪一个的. private Context context; // 上下文 private FrameLayout leftMenu; // 左边部分 privat

JQuery--基础动画、滑动动画、淡入淡出动画、自定义动画

1 /** 2 * [JQ基础动画] 3 * show() 显示 4 * hide() 隐藏 5 * toggle() 切换 6 * 默认无动画,如果要产生动画 7 * 在括号内,添加毫秒数,可产生动画和控制动画的快慢 8 * 9 * <滑动动画> 10 * slideDown() 滑动显示(下) 11 * slideUp() 滑动隐藏(上) 12 * slideToggle 滑动切换 13 * 默认有动画,默认是400毫秒 14 * <淡入淡出动画> 15 * fadeIn()

android仿微信红包动画、Kotlin综合应用、Xposed模块、炫酷下拉视觉、UC浏览器滑动动画等源码

Android精选源码 仿微信打开红包旋转动画 使用Kotlin编写的Android应用,内容你想象不到 Android手机上的免Root Android系统日志Viewer 一个能让微信 Material Design 化的 Xposed 模块 仿最新版微信 Rxjava+Retrofit+MVP+Glide 技术开发 android一键清理/内存加速,缓存清理,自启管理,软件管理 android打造酷炫下拉视差效果并解决各种滑动冲突源码 android实现UC浏览器首页滑动动画实现 andr

详解--单调队列 经典滑动窗口问题

单调队列,即单调的队列.使用频率不高,但在有些程序中会有非同寻常的作用. 动态规划·单调队列的理解 做动态规划时常常会见到形如这样的转移方程: f[x] = max or min{g(k) | b[x] <= k < x} + w[x] (其中b[x]随x单调不降,即b[1]<=b[2]<=b[3]<=...<=b[n]) (g[k]表示一个和k或f[k]有关的函数,w[x]表示一个和x有关的函数) 这个方程怎样求解呢?我们注意到这样一个性质:如果存在两个数j, k,使