美文网首页 ios零碎记录自己尝试等装一下学无止境
iOS-VLCKit实现仿网易云音乐播放音乐(三)

iOS-VLCKit实现仿网易云音乐播放音乐(三)

作者: QuintGao | 来源:发表于2017-10-11 17:53 被阅读995次

    iOS仿网易云音乐

    iOS-VLCKit实现仿网易云音乐播放音乐(一)

    iOS-VLCKit实现仿网易云音乐播放音乐(二)

    iOS-VLCKit实现仿网易云音乐播放音乐(三)

    前言

    自从加入转盘后,在不断的使用过程中,发现切换歌曲时效果不太好,于是观察了网易云音乐的效果,仿写了一下,可能不如网易云那么流畅,但整体来说还是实现了。

    实现

    观察网易云后发现,在转盘界面可以通过左右滑动来切换上一曲、下一曲,点击下面的上一曲、下一曲按钮也会有滑动切换效果。
    实现思路:在转盘界面加入UIScrollView,然后添加三个转盘视图,并显示中间的视图,每次切换后重新再次显示中间的视图。下面是主要的代码:

    1、创建UIScrollView,并添加转盘视图

            [self.diskScrollView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.edges.equalTo(self);
            }];
    
            self.isAnimation = YES;
            
            [self.diskScrollView addSubview:self.leftDiskView];
            [self.diskScrollView addSubview:self.centerDiskView];
            [self.diskScrollView addSubview:self.rightDiskView];
            
            self.diskScrollView.contentSize = CGSizeMake(KScreenW * 3, 0);
            
            [self setScrollViewContentOffsetCenter];
    

    2、滑动结束后,重新设置索引

        // 获取结束时,获取索引
        CGFloat scrollW = CGRectGetWidth(scrollView.frame);
        CGFloat offsetX = scrollView.contentOffset.x;
        
        if (offsetX == 2 * scrollW) {
            self.currentIndex = (self.currentIndex + 1) % self.musics.count;
        }else if (offsetX == 0) {
            self.currentIndex = (self.currentIndex - 1 + self.musics.count) % self.musics.count;
        }else {
            [self setScrollViewContentOffsetCenter];
        }
    

    另外还发现个坑点:边缘滑动返回与UIScrollView滑动的手势冲突,解决办法如下:

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
        
        if ([gestureRecognizer isKindOfClass:[UIScreenEdgePanGestureRecognizer class]]) {
            return NO;
        }
        
        return YES;
    }
    

    下面看看效果图吧:

    切换.gif

    文章可能写的不是太清楚,具体还是看代码吧,github地址:GKAudioPlayerDemo

    如果您感兴趣的话,不妨点个star哦!

    相关文章

      网友评论

      • 4be4bc97a8de:你好 我完整的抽出了你的播放器 但是不知道为什么滑动上下一首的时候 进度 歌曲封面会出问题
        4be4bc97a8de:@QuintGao 我想把你的项目 集成到项目里面 而且很急 出现问题有点难受
        4be4bc97a8de:@QuintGao 滑动的时候 歌曲图片会跳两下 有时候滑动 定时器记录的时候也乱了 这里发不了图片
        QuintGao:@黎先森你好 出现了什么问题?
      • 156d72df55fc:能播放本地音乐吗
        156d72df55fc:@QuintGao 我下载了git上的demo在无网络状态下播放本地音乐代理返回状态是停止了,播放不了
        QuintGao:@NSLog_木木 支持的
      • 会跳舞的狮子:good 给力

      本文标题:iOS-VLCKit实现仿网易云音乐播放音乐(三)

      本文链接:https://www.haomeiwen.com/subject/ungwyxtx.html