2017-09-25 6 views
1

私は内部にcollectionViewを持つviewControllerを持っています。私は、すべてを正しく構成していて、まだセルをレンダリングしていないと確信しています。私は、適切な代表者とデータソースを追加し、ダブル・データがロードされているかどうかをチェックし、それはあるが、細胞がCollectionViewはセルを登録していません

import UIKit 
import UIKit 
import Alamofire 
import AlamofireNetworkActivityIndicator 
import SwiftLocation 
import CoreLocation 
import AMScrollingNavbar 

class NewHomeFeedControllerViewController: UIViewController { 
    let detailView = EventDetailViewController() 
    var allEvents = [Event]() 
    let customCellIdentifier1 = "customCellIdentifier1" 
    var grideLayout = GridLayout(numberOfColumns: 2) 
    let refreshControl = UIRefreshControl() 
    var newHomeFeed: NewHomeFeedControllerViewController? 
     let paginationHelper = PaginationHelper<Event>(serviceMethod: PostService.showEvent) 
    lazy var dropDownLauncer : DropDownLauncher = { 
     let launcer = DropDownLauncher() 
     launcer.newHomeFeed = self 
     return launcer 
    }() 

    // 1 IGListKit uses IGListCollectionView, which is a subclass of UICollectionView, which patches some functionality and prevents others. 
    let collectionView: UICollectionView = { 
     // 2 This starts with a zero-sized rect since the view isn’t created yet. It uses the UICollectionViewFlowLayout just as the ClassicFeedViewController did. 
     let view = UICollectionView(frame: CGRect.zero, collectionViewLayout: UICollectionViewFlowLayout()) 
     // 3 The background color is set to white 
     view.backgroundColor = UIColor.white 
     return view 
    }() 
    func handleDropDownMenu(){ 
     dropDownLauncer.showDropDown() 
    } 
    func configureCollectionView() { 
     // add pull to refresh 
     refreshControl.addTarget(self, action: #selector(reloadHomeFeed), for: .valueChanged) 
     collectionView.addSubview(refreshControl) 
    } 
    func reloadHomeFeed() { 
     self.paginationHelper.reloadData(completion: { [unowned self] (events) in 
      self.allEvents = events 

      if self.refreshControl.isRefreshing { 
       self.refreshControl.endRefreshing() 
      } 

      DispatchQueue.main.async { 
       self.collectionView.reloadData() 
      } 
     }) 
    } 

    func categoryFetch(dropDown: DropDown){ 
     navigationItem.title = dropDown.name 
     paginationHelper.category = dropDown.name 
     configureCollectionView() 
     reloadHomeFeed() 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     view.addSubview(collectionView) 
     collectionView.contentInset = UIEdgeInsetsMake(15, 0, 0, 0) 
     navigationItem.title = "Home" 
     collectionView.dataSource = self 
     collectionView.delegate = self 
     collectionView.collectionViewLayout = grideLayout 
     collectionView.reloadData() 
     collectionView.register(CustomCell.self, forCellWithReuseIdentifier: customCellIdentifier1) 
     // self.navigationItem.hidesBackButton = true 
     let backButton = UIBarButtonItem(image: UIImage(named: "menu"), style: .plain, target: self, action: #selector(handleDropDownMenu)) 
     self.navigationItem.leftBarButtonItem = backButton 
     configureCollectionView() 
     reloadHomeFeed() 
     // Do any additional setup after loading the view. 
    } 
    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 

     if let navigationController = self.navigationController as? ScrollingNavigationController { 
      navigationController.followScrollView(self.collectionView, delay: 50.0) 
     } 
    } 
    override func viewDidDisappear(_ animated: Bool) { 
     super.viewDidDisappear(animated) 

     if let navigationController = navigationController as? ScrollingNavigationController { 
      navigationController.stopFollowingScrollView() 
     } 
    } 

    func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool { 
     if let navigationController = navigationController as? ScrollingNavigationController { 
      navigationController.showNavbar(animated: true) 
     } 
     return true 
    } 

    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { 
     super.viewWillTransition(to: size, with: coordinator) 
     grideLayout.invalidateLayout() 
    } 
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
     return true 
    } 
} 


extension NewHomeFeedControllerViewController: UICollectionViewDataSource { 
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return allEvents.count 
    } 
    // The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath: 
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

     let customCell = collectionView.dequeueReusableCell(withReuseIdentifier: customCellIdentifier1, for: indexPath) as! CustomCell 
     let imageURL = URL(string: allEvents[indexPath.item].currentEventImage) 
     print(imageURL ?? "") 
     customCell.sampleImage.af_setImage(withURL: imageURL!) 
     return customCell 
    } 
} 


extension NewHomeFeedControllerViewController: UICollectionViewDelegateFlowLayout{ 
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
     if indexPath.item == 0 || indexPath.item == 1 { 
      return CGSize(width: view.frame.width, height: grideLayout.itemSize.height) 
     }else{ 
      return grideLayout.itemSize 
     } 
    } 
} 

に行くことができるか任意のアイデアを移入されていませんか?

+1

ため、この

override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() collectionView.frame = view.bounds } 

母に感謝を追加するのを忘れちょうどそれを見て、いないことを文字列変数 –

+0

申し訳ありません私の悪いのポイントです。 – chirag90

+0

だから任意のアイデア@ chirag90 –

答えて

0

申し訳ありませんが、皆さんは私が意味する助け

+0

FYI @mag_zbcをレンダリングしていなかった理由 –

関連する問題