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


    一.旋转动画的实现

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

    • 头文件

    • .m文件
       1 #import "ChaosMusicTool.h"
       2 #import "MJExtension.h"
       3 #import "ChaosMusic.h"
       4 
       5 static NSArray *_musics;
       6 static ChaosMusic *_playingMusic;
       7 
       8 @implementation ChaosMusicTool
       9 
      10 + (void)initialize
      11 {
      12     if (_musics == nil) {
      13         _musics = [ChaosMusic objectArrayWithFilename:@"Musics.plist"];
      14     }
      15     // 设置默认当前播放歌曲
      16     _playingMusic = _musics[1];
      17 }
      18 
      19 /** 返回所有歌曲 */
      20 + (NSArray *)musics
      21 {
      22     return _musics;
      23 }
      24 /** 返回正在播放歌曲 */
      25 + (ChaosMusic *)playingMusic
      26 {
      27     return _playingMusic;
      28 }
      29 /** 返回下一首 */
      30 + (ChaosMusic *)nextMusic
      31 {
      32     // 1.获得当前播放歌曲的索引
      33     NSInteger index = [_musics indexOfObject:_playingMusic];
      34     // 2.判断下一个索引
      35     NSInteger nextIndex = ++index;
      36     if (nextIndex >= _musics.count) { // 是否超出界限
      37         nextIndex = 0;
      38     }
      39     return _musics[nextIndex];
      40 }
      41 
      42 /** 返回上一首 */
      43 + (ChaosMusic *)previousMusic
      44 {
      45     // 1.获得当前播放歌曲的索引
      46     NSInteger index = [_musics indexOfObject:_playingMusic];
      47     // 2.判断下一个索引
      48     NSInteger previousIndex = --index;
      49     if (previousIndex < 0) { // 是否超出界限
      50         previousIndex = _musics.count - 1;
      51     }
      52     return _musics[previousIndex];
      53 }
      54 /** 设置当前播放歌曲 */
      55 + (void)setPlayingMusic:(ChaosMusic *)music
      56 {
      57     _playingMusic = music;
      58 }
      59 @end

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

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

    四.SliderBar的事件处理

  • 相关阅读:
    oracle使用expdp备份数据库
    用Setuptools构建和分发程序包
    C#5.0-原生异步编程方式
    任务并行库
    线程-线程池1
    多线程-3(同步)
    多线程-2(线程同步)
    线程---1
    高性能-GC3
    高性能-GC2
  • 原文地址:https://www.cnblogs.com/gchlcc/p/5582457.html
Copyright © 2020-2023  润新知