2017-12-20 12 views
0

ここでは、私のテーブルビューセルの1つがコレクションビューで構成されています。このページングを実装する必要があります。func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath)この関数を使用できません。テーブルビューのページ設定を実装する方法を教えてください。これを実装して、コレクションビューの最後の要素に達したときに条件を設定します。ここでは、ページネーションを実装する方法はわかりますが、リロードする必要がある関数を呼び出す方法はわかりますか?ここスイフト3のテーブルビューセルでコレクションビューのページ設定を実装する方法は?

は、最後のセルを検出し、自動寸法に機能

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { 
     let obj = items 
     let lastElement = (obj.count) - 1 
     print(lastElement) 
     if !loadingData && indexPath.row == lastElement { 
      loadingData = true 
      guard let obj = self.listClassModel else { return } 
      if ((obj.searchCriteria.pageSize as? Int) != nil) { 
       self.collectionView.bottomRefreshControl?.beginRefreshing() 
       let viewController = HomeViewController() 
       viewController.loadMoreData() 
      } 
     } 
func loadMoreData() { 
     DispatchQueue.global(qos: .background).async { 
      guard let obj = self.listClassModel else { return } 
      let totalItems = obj.totalCount 
      let numberOfItems = obj.searchCriteria.pageSize as! Int 
      let float = Float(totalItems)/Float(numberOfItems) 
      print(float) 
      let totalPages = Int(ceil(float)) 
      print(self.count) 
      if totalPages != self.count { 
       self.index += 1 
       self.count += 1 
       print(self.count) 
        let batchSize = 10 
        let sortField = "name" 
        let sortOrder = "ASC" 
        let conditionType = "eq" 
        let categoryId = 1 
        self.listCategoryDownloadJsonWithURL(listUrl: listUrlWithParameters) 
      } 
      else { 
       self.loadingData = false 
      } 
      DispatchQueue.main.async { 
       // this runs on the main queue 
       self.loadingData = false 
      } 

     } 
    } 

答えて

0
  1. セットテーブルビューの行の高さの下

のtableViewを使用してデータをリロードする作るために使用私の関数です。 rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 44

2. IBOutletを作成するtableViewCell内のcollectionViewの高さです。 tableViewCell内のcollectionViewの先頭、末尾、上端、下端の制約を設定します。

3.Createの(objCollectionView等)tableViewCell下collectionViewための出口とcellForRowAt indexPathメソッド内

FUNCとのtableViewを次のコードを追加する(_のtableView:のUITableView、cellForRowAt indexPath:IndexPath) - >のUITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) as! tableCell 

    cell.frame = tableView.bounds 
    cell.layoutIfNeeded() 
    cell.objCollectionView.reloadData() 

    cell.objCollectionViewHeightConstraint.constant = cell.objCollectionView.contentSize.height 
    return cell; 

}

これは、自動的にtableViewCellの高さをコンテンツに応じて調整します。

+0

いいえ私はそれを持っていました@ヘマントサバール – User

+0

上記のコードはあなたを助けますか? –

+0

今私は、コレクションビューの最後の項目の条件を確認し、それを配置する必要がある方法を確認することができますテーブルビューのセル内のコレクションビューのページングを実装する必要があります@Hemant Sabale – User

関連する問題