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

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

一.旋转动画的实现

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

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

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

  • 头文件

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

  • .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

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

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

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

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

四.SliderBar的事件处理

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