一个好的引导页会使得用户体验大大提升,利用视频来做,可以更简单的达到优雅的效果。
使用MediaPlayer.framework框架下的AVPlayerLayer,它和Core Animation紧密地结合在一起,提供了一个CALayer子类来显示自定义的内容类型。
加入MediaPlayer.framework及

 #import  #import

核心代码:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{int Offset = _scroll.contentOffset.x/_scroll.frame.size.width;if (Offset == lastindex)
{    return;
}if (Offset == 0)
{
    [avPlayer1 seekToTime:kCMTimeZero];
    [avPlayer1 play];
    [avPlayer2 seekToTime:kCMTimeZero];
    [avPlayer2 pause];
    [avPlayer3 seekToTime:kCMTimeZero];
    [avPlayer3 pause];
    _pagecontrol.currentPage = 0;
}else if (Offset == 1)
{
    [avPlayer2 seekToTime:kCMTimeZero];
    [avPlayer2 play];
    [avPlayer1 seekToTime:kCMTimeZero];
    [avPlayer1 pause];
    [avPlayer3 seekToTime:kCMTimeZero];
    [avPlayer3 pause];
    _pagecontrol.currentPage = 1;
}else if (Offset == 2)
{
    [avPlayer3 seekToTime:kCMTimeZero];
    [avPlayer3 play];
    [avPlayer1 seekToTime:kCMTimeZero];
    [avPlayer1 pause];
    [avPlayer2 seekToTime:kCMTimeZero];
    [avPlayer2 pause];
    _pagecontrol.currentPage = 2;
}
lastindex = Offset;}

主要通过UIScrollView的代理来实现现在是哪一页面。
下载地址:https://github.com/sinceresk/SIHomePage
效果如图:

文章转自 neilbee的简书

iOS利用视频做起始页的更多相关文章

  1. iOS 利用UICollectionView做一个无限循环广告栏

    一.效果图 左右丝滑滑动,并且有缩放动画. 二.分析和思路 1. 为什么选择用UICollectionView去做上面的效果? 首先无限效果永远是表现出来的,而不是程序里面创建了无数个view,如何做 ...

  2. UIView封装动画--iOS利用系统提供方法来做转场动画

    UIView封装动画--iOS利用系统提供方法来做转场动画 UIViewAnimationOptions option; if (isNext) { option=UIViewAnimationOpt ...

  3. UIView封装动画--iOS利用系统提供方法来做关键帧动画

    iOS利用系统提供方法来做关键帧动画 ios7以后才有用. /*关键帧动画 options:UIViewKeyframeAnimationOptions类型 */ [UIView animateKey ...

  4. UIView封装动画--iOS 利用系统提供方法来做弹性运动

    iOS 利用系统提供方法来做弹性运动 /*创建弹性动画 damping:阻尼,范围0-1,阻尼越接近于0,弹性效果越明显 velocity:弹性复位的速度 */ [UIView animateWith ...

  5. 如何实现 iOS 短视频跨页面的无痕续播?

    在一切皆可视频化的今天,短视频内容作为移动端产品新的促活点,受到了越来越多的重视与投入.盒马在秒播.卡顿率.播放成功率等基础优化之外,在用户使用体验上引入了无痕续播能力,提升用户观看视频内容的延续性. ...

  6. ios 音视频实现边播边缓存的思路和解决方案 (转)

    本片为转载内容,主要是以后自己看起来方便一些 原文地址:iOS音视频实现边下载边播放 其实音视频本地缓存的思想都差不多,都需要一个中间对象来连接播放器和服务器. 近段时间制作视频播放社区的功能,期间查 ...

  7. iOS 音频视频图像合成那点事

    代码地址如下:http://www.demodashi.com/demo/13420.html 人而无信不知其可 前言 很久很久没有写点什么了,只因为最近事情太多了,这几天终于闲下来了,趁此机会,记录 ...

  8. Java基础-继承 利用接口做参数,写个计算器,能完成+-*/运算

    38.利用接口做参数,写个计算器,能完成+-*/运算 (1)定义一个接口Compute含有一个方法int computer(int n,int m); (2)设计四个类分别实现此接口,完成+-*/运算 ...

  9. [iOS] 使用xib做为应用程序入口 with Code

    [iOS] 使用xib做为应用程序入口 with Code 前言 开发iOS APP的时候,使用storyboard能够快速并且直觉的建立用户界面.但在多人团队开发的情景中,因为storyboard是 ...

随机推荐

  1. 在Silverlight中的DispatcherTimer的Tick中使用基于事件的异步请求

    需求:在silverlight用户界面上使用计时器定时刷新数据. 在 Silverlight 中的 DispatcherTimer 的 Tick 事件 中使用异步请求数据时,会出现多次请求的问题,以下 ...

  2. UVa 753 (二分图最大匹配) A Plug for UNIX

    题意: 有n个插座,m个设备以及k种转化器(每种转化器视为有无限个). 转换器A->B可以将A类型的插头转化成B类型的插头,所以可以插在B类型的插座上. 求最少剩多少不匹配的设备. 分析: 抛开 ...

  3. postInvalidate、removeAllViewsInLayout、refreshDrawableState用法

    postInvalidate.invalidate:会调用控件的onDraw()重绘控件 refreshDrawableState:当控件在使用一个对控件状态敏感的Drawable对象时使用,如一个B ...

  4. POJ 1017 Packets

    题意:有一些1×1, 2×2, 3×3, 4×4, 5×5, 6×6的货物,每个货物高度为h,把货物打包,每个包裹里可以装6×6×h,问最少几个包裹. 解法:6×6的直接放进去,5×5的空隙可以用1× ...

  5. [King.yue]Ext中Grid得到选择行数据的方法总结

    (1)grid.getStore().getRange(0,store.getCount());    //得到grid所有的行 (2)grid.getSelectionModel().getSele ...

  6. 用通俗的例子解释OAuth和OpenID的区别【原】

    什么是OAuth(Wiki) 什么是OpenID(Wiki) 详细的定义可以看wiki,下面举个例子说说我的理解 现在很多网站都可以用第三方的账号登陆,比如,现在我要登录淘宝买东西,而如果我没有淘宝的 ...

  7. 导入showb时候出错--2015-12-4

    [root@cache-02 ~]# /opt/coreseek/csftweb-bash: /opt/coreseek/csftweb: is a directory[root@cache-02 ~ ...

  8. 浏览器的CSS Hacks

    LZ注:此文原作者是:Paul Irish(Google的前端开发工程师),本文是原文的部分译文. 我不再使用CSS Hacks了,相反的是,我将使用IE的条件判断将类应用到body标签.   但是, ...

  9. svn文件清理Bat脚本

    @echo On@Rem C:\Users\caoxiancc\Desktop\Ueditor-thinkphp-master\Ueditor --svn跟路径@PROMPT [Com] @for / ...

  10. [Xcode使用 - 1] 自定义代码块引用

    Xcode本身带有编码常用的代码块可供使用,如下图   例如 “if” 这个代码块的定义     调用方法 1.可以直接拖放带编辑区   2.使用快捷键,键入 “if”, Xcode就会出现自动完成的 ...