如何解决使用视频源进行水平和垂直滚动
是否可以制作水平和垂直滚动的视频源?预加载视频? 例如 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 举报,一经查实,本站将立刻删除。