我在调用URBMediaFocusViewController后尝试重新加载我的collectionView中的数据
无论我尝试什么,我都无法让我的collectionView重新加载。在解雇URB时,我调用了一个自定义类func refreshAfterURB () {}
我一直在尝试加载那么多不同的东西来尝试刷新但是没有进展。当我使用println(self.collectionView?)
打印我的collectionView时,它返回nil
。应该没有理由这样做,所以我尝试使用
func refreshAfterURB () {
self.view.setNeedsDisplay()
self.view.setNeedsLayout()
self.view.setNeedsUpdateConstraints()
self.collectionView?.reloadData()
}
但是这并没有刷新我的collectionView,它甚至没有重新加载我认为的视图,因为它保持了它当前的滚动位置,但之后它将打印collectionView。
我需要能够在此命令中或以这样的方式刷新我的collectionView。
我成功的唯一方法是使用我设置的SVPullToRefresh:
self.collectionView.addPullToRefreshWithActionHandler({
println(self.collectionView?)
self.refresh()
}, position: SVPullToRefreshPosition.Bottom)
知道这些作品我尝试了以下内容,但也没有运气。
var instanceOfCustomObject: UIScrollView = UIScrollView()
self.collectionView?.triggerPullToRefresh()
我的CollectionView设置如下:
var collectionView: UICollectionView!
_
func setUpCollection () {
layout.sectionInset = UIEdgeInsetsMake(2, 2, 2, 2);
layout.headerHeight = 0;
layout.footerHeight = 0;
layout.columnCount = numOfColums
layout.minimumColumnSpacing = 2;
layout.minimumInteritemSpacing = 2;
self.collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
self.collectionView.dataSource = self
self.collectionView.delegate = self
self.collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
self.collectionView.backgroundColor = offWhite
self.collectionView.frame = CGRectMake(0, 64, screenSize.width, screenSize.height - 64)
self.view.addSubview(self.collectionView)
self.collectionView.addPullToRefreshWithActionHandler({
println(self.collectionView?)
self.refresh()
}, position: SVPullToRefreshPosition.Bottom)
}
那么如何在函数中刷新我的collectionView而不必向下滑动以刷新?
我的代码还可以随意提问。
更新:
我添加了几行来查找;
1)在我调用重载数据之前,我打印新的数组计数(60)
2)在cellForItemAtIndexPath中,它只打印(30)数组的计数
更新#2
在阅读plist之前调用了重载数据
答案 0 :(得分:0)
这一切都归结为它在读取数据之前重新加载数据。就我而言,它就像放
一样简单self.collectionView?.reloadData()
self.collectionView?.layoutIfNeeded()
在readPlist()
在这种情况下的任何其他人我建议在几个地方打印出阵列的数量,以确保它在重新加载前正确填充。