UICollectionView 完成加载后如何启动功能?
Posted
技术标签:
【中文标题】UICollectionView 完成加载后如何启动功能?【英文标题】:How can I start function when UICollectionView is finished loading? 【发布时间】:2017-01-04 07:40:50 【问题描述】:func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "HomePageTitleCell", for: indexPath) as! HomePageTitleCell
cell.news = homePageViewController.sliderList[indexPath.row]
let returnleft = IndexPath(row: 0, section: 0)
self.collectionView.scrollToItem(at: returnleft, at: UICollectionViewScrollPosition.left, animated: true)
return cell
加载UICollectionView
后如何使用returnleft
?
let returnleft = IndexPath(row: 0, section: 0)
self.collectionView.scrollToItem(at: returnleft, at: UICollectionViewScrollPosition.left, animated: true)
不在cellForItemAt
工作
【问题讨论】:
看起来类似于这个问题:***.com/questions/15985574/… 您需要更准确地了解“完成加载”的含义。加载所有集合视图时没有特定的点。它有意只加载它认为在任何给定时间需要的部分(以及加载的部分在 ios 10 中发生了变化)。当它加载其他部分时,将取决于滚动,除非所有视图同时在屏幕上。您需要准确说明“不工作”的含义。你能指望什么?实际发生了什么?如果这真的是关于滚动到一个单元格,这是一个重复的问题并且有答案。 【参考方案1】:cellForItemAt
仅用于在表格视图中创建单元格。它将为表格中的每个单元格调用一次(不一定是一次,而是在您滚动到表格视图时)。
所以把你的代码移到更合适的地方,比如viewDidLoad
。
let returnleft = IndexPath(row: 0, section: 0)
self.collectionView.scrollToItem(at: returnleft, at:UICollectionViewScrollPosition.left, animated: true)
【讨论】:
以上是关于UICollectionView 完成加载后如何启动功能?的主要内容,如果未能解决你的问题,请参考以下文章
加载后如何将 UICollectionView 单元格居中?
首次加载后如何在 UICollectionView 中选择一些项目?
页面加载时滚动后如何访问 UICollectionView 中的特定单元格?