【发布时间】:2014-11-18 20:02:33
【问题描述】:
在调用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 之前调用 reload data
【问题讨论】:
-
前四行在哪里被调用?来自方法或完成处理程序?
-
在我的
refreshAfterURB()我编辑了我的问题
标签: ios swift uicollectionview