美文网首页短视频相关
UITableView实现抖音全屏滚动,短视频自动播放,下拉刷新

UITableView实现抖音全屏滚动,短视频自动播放,下拉刷新

作者: Faker_iOS开发 | 来源:发表于2018-05-14 14:00 被阅读661次

    UITableView实现抖音全屏滚动,短视频自动播放,下拉刷新,上拉加载。

    不懂联系QQ903040553具体项目效果可看下载地址https://fir.im/rxqe,见笑了

    之前看到一篇简书仿抖音滚动,UIScrollView 自动播放,简书地址https://www.jianshu.com/p/bdf0a1fa2c6c,他的原理是3个播放器,上,中,下无限替换数据,改变UIScrollView的偏移量,来实现的,到我自己的项目里面发现需要刷新和加载,于是我想能不能用UITableView写,直接上代码。

    1.创建UITableView,一屏一页。pagingEnabled为YES.

      _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight) style:UITableViewStylePlain];

        _tableView.dataSource = self; //数据

        _tableView.delegate=self;

        _tableView.pagingEnabled = YES;

        _tableView.opaque = YES;

        _tableView.scrollsToTop = YES;

        _tableView.bounces = NO;

      _tableView.estimatedRowHeight = 0;

        _tableView.estimatedSectionHeaderHeight = 0;

        _tableView.estimatedSectionFooterHeight = 0;

        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    2.停止滚动里面去赋值和加载

    //减速完成(停止)  加载更多 和 赋值用

    - (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView{

      CGFloat contentYoffset = scrollView.contentOffset.y;

        NSInteger j =  contentYoffset/kScreenHeight;

     indexRow = j; //记住当前的行

    获取第几页,

    NSIndexPath *indexPath=[NSIndexPath indexPathForRow:j inSection:0];

            _cell= [_tableViewcellForRowAtIndexPath:indexPath];

    获取到当前的cell,

    播放视频 我播放视频用的是KSYMoviePlayerController金山的

    把播放器加到当前cell上,这样永远只有一个播放器,那个cell显示把播放器加到那个上面。

     [self.playerreset:NO];

               [self.playersetUrl:[NSURLURLWithString:model.targetPath]];

                [self.playerprepareToPlay];

      if (indexRow ==_dataSource.count-1) {

            //到了最后一行

            NSLog(@"到了最后一行");

                page++;

    //你请求接口的方法

    }

    }

    3.下拉刷新

    // 已经结束拖动  刷新用

    - (void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate {

        CGFloatcontentYoffset = scrollView.contentOffset.y;

        NSIntegerj =  contentYoffset/kScreenHeight;

        if(j==0&&contentYoffset<=0) {

            NSLog(@"我要刷新了");

           [SVProgressHUD showWithStatus:@"数据加载..."];

             firet=NO;//改为NO,重新刷新

            page=1;

            [_dataSource removeAllObjects];

        [selfloadMp4List];

        }

    }

    相关文章

      网友评论

        本文标题:UITableView实现抖音全屏滚动,短视频自动播放,下拉刷新

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