一.旋转动画的实现

二.音乐工具类的封装 -- 返回所有歌曲,返回当前播放歌曲,设置当前播放歌曲,返回下一首歌曲,返回上一首歌曲方法的实现

  • 头文件

  • .m文件

     #import "ChaosMusicTool.h"
    #import "MJExtension.h"
    #import "ChaosMusic.h" static NSArray *_musics;
    static ChaosMusic *_playingMusic; @implementation ChaosMusicTool + (void)initialize
    {
    if (_musics == nil) {
    _musics = [ChaosMusic objectArrayWithFilename:@"Musics.plist"];
    }
    // 设置默认当前播放歌曲
    _playingMusic = _musics[];
    } /** 返回所有歌曲 */
    + (NSArray *)musics
    {
    return _musics;
    }
    /** 返回正在播放歌曲 */
    + (ChaosMusic *)playingMusic
    {
    return _playingMusic;
    }
    /** 返回下一首 */
    + (ChaosMusic *)nextMusic
    {
    // 1.获得当前播放歌曲的索引
    NSInteger index = [_musics indexOfObject:_playingMusic];
    // 2.判断下一个索引
    NSInteger nextIndex = ++index;
    if (nextIndex >= _musics.count) { // 是否超出界限
    nextIndex = ;
    }
    return _musics[nextIndex];
    } /** 返回上一首 */
    + (ChaosMusic *)previousMusic
    {
    // 1.获得当前播放歌曲的索引
    NSInteger index = [_musics indexOfObject:_playingMusic];
    // 2.判断下一个索引
    NSInteger previousIndex = --index;
    if (previousIndex < ) { // 是否超出界限
    previousIndex = _musics.count - ;
    }
    return _musics[previousIndex];
    }
    /** 设置当前播放歌曲 */
    + (void)setPlayingMusic:(ChaosMusic *)music
    {
    _playingMusic = music;
    }
    @end

三.定时器的使用技巧 -- 定义好了定时器后,添加两个方法,一个是添加定时器的方法,另一个是移除定时器的方法.

  • 使用的时候也要注意,一定先移除之前的timer,然后再添加timer

四.SliderBar的事件处理

iOS开发--QQ音乐练习,旋转动画的实现,音乐工具类的封装,定时器的使用技巧,SliderBar的事件处理的更多相关文章

  1. ios开发——实用技术篇&三维旋转动画

    实现三位旋转动画的方法有很多种,这里介绍三种 一:UIView 1 [UIView animateWithDuration:1.0 animations:^{ 2 self.iconView.laye ...

  2. iOS开发 QQ粘性动画效果

    QQ(iOS)客户端的粘性动画效果 时间 2016-02-17 16:50:00  博客园精华区 原文  http://www.cnblogs.com/ziyi--caolu/p/5195615.ht ...

  3. Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  4. iOS开发笔记10:圆点缩放动画、强制更新、远程推送加语音提醒及UIView截屏

    1.使用CAReplicatorLayer制作等待动画 CALayer+CABasicAnimation可以制作很多简单的动画效果,之前的博客中介绍的“两个动画”,一个是利用一张渐变色图片+CABas ...

  5. 【Swift】IOS开发中自定义转场动画

    在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器 ...

  6. iOS开发--QQ音乐练习,后台播放和锁屏界面

    一.设置后台播放 首先允许程序后台播放 代码实现 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...

  7. iOS开发--QQ音乐练习,歌词的展示,歌词的滚动,歌词的颜色变化

    一.歌词的展示 -- 首先歌词是在scrollView上,scrollView的大小是两个屏幕的宽度 scrollView滚动修改透明度的代码                             ...

  8. ios开发图层layer与核心动画二:CATransform3D,CAlayear和UIView区别,layer的position和anchorpoint

    一:CATransform3D #import "ViewController.h" @interface ViewController () @property (weak, n ...

  9. iOS开发UIkit动力学UIDynamicAnimator一系列动画

    UIDynamicAnimator类,通过这个类中的不同行为来实现一些动态特性. UIAttachmentBehavior(吸附),UICollisionBehavior(碰撞),UIGravityB ...

随机推荐

  1. SQL各种语句、函数

    1.更改数据库的名称 2.表中有数据的情况下再添加列.删除列 3.在SQLServer 中各种查询语句的使用示例 4.模糊查询的语句 5.排序语句.排序并查前三名的语句 聚合函数:sum,avg,ma ...

  2. Stunnel使用2

    1.首先测试一下stunnel.exe,是否能正常运行,正常的话,不会报错,在桌面右下角位置显示. 2.第一步完成后,打开stunnel.conf,对stunnel进行配置,需要修改一下几项:(mys ...

  3. bzoj1082[SCOI2005]栅栏

    Description 农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材.于是农夫约翰到木材店购 买木材.可是木材店老板说他这里只剩下少部分大规格的木板了.不过约翰可以购买这些 ...

  4. Nginx虚拟目录alias和root目录

    nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的:1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alia ...

  5. Js多国时间动态更新

    Js多国时间动态更新 点击下载

  6. web standards

    http://www.w3.org/standards/ http://www.webstandards.org/learn/faq/#p213 http://www.w3.org/standards ...

  7. (原创)在Exchange 2007 server中使用实时黑名单服务(RBL)过滤垃圾邮件

    近一段有同事抱怨公司的邮件系统垃圾邮件非常多,早上上班打开邮箱垃圾邮件竟然有几十封.然后赶紧打开Exchange工具“邮件跟踪”,发现有每隔1到2分钟,邮件系统便会收到来自不同IP的垃圾邮件,由于源I ...

  8. C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 导入导出Microsoft Excel 2010的例子

    1:能支持多种Excel版本,早期的.现在的版本都支持.2:能导入.3:能导出.4:有简单的例子可以参考.

  9. 路由系统的核心对象——Router

    路由系统的核心对象--Router ASP.NET Core应用中的路由机制实现在RouterMiddleware中间件中,它的目的在于通过路由解析为请求找到一个匹配的处理器,同时将请求携带的数据以路 ...

  10. Linux Linux程序练习十四(多进程压力测试)

    /* * 题目: * 编程一个基本多进程测试框架,提示用户输入进程数.和每个进程数运行圈数.(fork) * 进行多进程压力测试.(execve) * 要求父进程能监控所有子进程的退出,避免僵尸进程. ...