zoukankan      html  css  js  c++  java
  • 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的事件处理

  • 相关阅读:
    149. Max Points on a Line(js)
    148. Sort List(js)
    147. Insertion Sort List(js)
    146. LRU Cache(js)
    145. Binary Tree Postorder Traversal(js)
    144. Binary Tree Preorder Traversal(js)
    143. Reorder List(js)
    142. Linked List Cycle II(js)
    141. Linked List Cycle(js)
    140. Word Break II(js)
  • 原文地址:https://www.cnblogs.com/gchlcc/p/5582457.html
Copyright © 2011-2022 走看看