微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用视频源进行水平和垂直滚动

如何解决使用视频源进行水平和垂直滚动

是否可以制作水平和垂直滚动的视频源?预加载视频? 例如 3*3 视频 URL 响应可能预加载

extension HomeScreen: UITableViewDataSource,UITableViewDelegate,UITableViewDataSourcePrefetching {
    func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
        5
    }
    
    func tableView(_ tableView: UITableView,prefetchRowsAt indexPaths: [IndexPath]) {
        print(indexPaths)
    }
    
    func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "StoryCell") as? StoryTableViewCell
        cell?.remixDelegate = self
        cell?.reloadAllData(index: indexPath.row)
        return cell!
    }
    
    func tableView(_ tableView: UITableView,willdisplay cell: UITableViewCell,forRowAt indexPath: IndexPath) {
        print("TableView Will display",indexPath.row)
        guard cell is StoryTableViewCell else { return }
        
    }
    
    func tableView(_ tableView: UITableView,didEnddisplaying cell: UITableViewCell,forRowAt indexPath: IndexPath) {
        guard let tableViewCell = cell as? StoryTableViewCell else { return }
        tableViewCell.pauseAllCell()
        
    }
    
    func tableView(_ tableView: UITableView,heightForRowAt indexPath: IndexPath) -> CGFloat {
        return storyTableView.frame.height
    }
}


// MARK: - UICollection View Delegates
extension StoryTableViewCell: UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDataSourcePrefetching,UICollectionViewDelegateFlowLayout {
    func collectionView(_ collectionView: UICollectionView,numberOfItemsInSection section: Int) -> Int {
        return urlArray.count
    }
    
    func collectionView(_ collectionView: UICollectionView,cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        print("CellForRowAt",indexPath.row)
        let cell: RemixCollectionViewCell = (collectionView.dequeueReusableCell(withReuseIdentifier: "RemixCell",for: indexPath) as? RemixCollectionViewCell)!
        cell.configure(url: urlArray[indexPath.row])
        cell.remixButton.tag = indexPath.row
        cell.remixButton.addTarget(self,action:#selector(onRemix(sender:)),for: .touchUpInside)
        return cell
    }
    
    func collectionView(_ collectionView: UICollectionView,didSelectItemAt indexPath: IndexPath) {
        print("Collection view at row \(collectionView.tag) selected index path \(indexPath)")
    }
    
    func collectionView(_ collectionView: UICollectionView,willdisplay cell: UICollectionViewCell,forItemAt indexPath: IndexPath) {
        print("willdisplay",indexPath.row)
        if let cell = cell as? RemixCollectionViewCell {
            oldAndNewIndices.1 = indexPath.row
            currentIndex = indexPath.row
            cell.pause()
        }
    }
    
    func collectionView(_ collectionView: UICollectionView,didEnddisplaying cell: UICollectionViewCell,forItemAt indexPath: IndexPath) {
        print("didEnddisplaying",indexPath.row)
        if let cell = cell as? RemixCollectionViewCell {
            cell.pause()
        }
    }
    
    func collectionView(_ collectionView: UICollectionView,prefetchItemsAt indexPaths: [IndexPath]) {
        print("prefetchItemsAt",indexPaths)
    }
    
    func collectionView(_ collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeforItemAt indexPath: IndexPath) -> CGSize {
        let size = CGSize(width: collectionView.layer.frame.width,height: collectionView.layer.frame.height)
        return size
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。