在添加到屏幕之前加载UICollectionView的数据

时间:2015-01-22 23:32:17

标签: ios objective-c swift viewdidload

我有一种情况,我需要让一个UICollectionView加载它的数据(所以我可以获取它的内容大小),然后才将它添加到视图层次结构中。

我试过调用reloadData并在main_thread上调度但无效

 //The context manager needs to check with this to see if the scrollview can scroll (because otherwise it can't pan it up)
    func hasEnoughContentForScrolling()->Bool
    {
        dispatch_sync(dispatch_get_main_queue(), {self.collectionView.reloadData()})

        if(collectionView.contentSize.height > UIScreen.mainScreen().bounds.height)
        {
            return true
        }
        return false
    }

您知道如何在将UICollectionView添加到屏幕之前预先加载它吗?

1 个答案:

答案 0 :(得分:0)

您可以在viewDidLoad方法中隐藏collectionView,并且在重新加载collectionView时,您可以使用加载的数据显示您的集合View。 我试着在Swift中编写代码。不确定它是一个快速的正确代码。但也许它可以帮助你理解 -

override func viewDidLoad() 
{super.viewDidLoad()self.collectionView.hidden = YES}  

func hasEnoughContentForScrolling()->Bool   
{ 
   dispatch_sync(dispatch_get_main_queue(),{
   self.collectionView.reloadData()self.collectionView.hidden = NO })
}