我正在使用具有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()
}