重新加载collectionVIew时,不会调用cellForItemAtIndexPath

时间:2017-02-20 05:25:52

标签: ios swift2 uicollectionview uicollectionviewcell uicollectionviewlayout

我正在使用具有WebView的UICollectionView。我已经使用UICollectionViewFlowLayout以编程方式创建了CollectionView,就像这样

        collectionViewLayout.sectionInset = UIEdgeInsetsZero
        collectionViewLayout.minimumLineSpacing = 0
        collectionViewLayout.minimumInteritemSpacing = 0
        collectionViewLayout.scrollDirection = .Horizontal
        collectionView1 = UICollectionView(frame: screenBounds, collectionViewLayout: collectionViewLayout)

当webView的scrollView到达底部时,有一个API调用,它获取一些Html数据并在WebView中显示,这里我在主线程中重新加载collectionView,但是前两次它不调用UICollectionVIewDataSource或Delegate中的任何方法,但第三次我调用所有函数,我不知道是什么导致这种不正确的行为,直到现在collectionView1只有一个单元格。

我已经像这样设置了UIWebViewDelegate

public func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 
{
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! CustomReaderCell
        cell.webView.scrollView.delegate = self


}

我调用API的功能

    extension CustomReaderViewController : UIScrollViewDelegate
    {
    public func scrollViewDidScroll(scrollView: UIScrollView) 
    {
             if (scrollView.contentOffset.y == (scrollView.contentSize.height - scrollView.frame.size.height) ) 
     {
           // Reached To Bottom
            // Calling API here 
                                dispatch_async(dispatch_get_main_queue(), {
                self.callAPI()
            })



    }
    }
    }

收到结果后,重新加载collectionView

dispatch_async(dispatch_get_main_queue()) {

                self.collectionView1.reloadData()

            }

0 个答案:

没有答案