2015-06-03 75 views
0

如何在UICollectionViewCell中添加表格視圖?我不確定是否真的開始。我如何獲取表視圖數據源並委託出?這裏是我已經嘗試過...如何使用Swift在UICollection View Cell中添加表視圖?

我試過谷歌搜索它,但我得到的是如何在表視圖中添加集合視圖,而不是其他方式。

import UIKit 

    class GeneralAisleViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UITableViewDataSource, UITableViewDelegate { 

     @IBOutlet weak var collectionView: UICollectionView! 


     var tableView:UITableView = UITableView() 

     var CollectionViewArray = ["1", "2", "3"] 

var tableView1Array = ["1", "2"] 
     var tableView2Array = ["1", "2"] 
var tableView3Array = ["1", "2"] 


     override func viewDidLoad() { 
      super.viewDidLoad() 

      // Do any additional setup after loading the view. 


      self.collectionView.delegate = self 
      self.collectionView.dataSource = self 

      self.tableView.delegate = self 
      self.tableView.dataSource = self 

     } 

     override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
      // Dispose of any resources that can be recreated. 
     } 


     func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
      return CollectionViewArray.count 
     } 


     func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

      let cell:UICollectionViewCell = self.collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! UICollectionViewCell 


      let dataToDisplay:String = CollectionViewArray[indexPath.row] 

      let dataLabel:UILabel = cell.viewWithTag(1) as! UILabel 




      dataLabel.text = dataToDisplay 


      let TableView = cell.viewWithTag(2) as! UITableView 

      self.tableView = TableView 




      return cell 
     } 

回答

1

UICollectionView(Cell)中加入UITableView反之亦然。

你只需要清楚誰是UITableView's委託和數據源。從你的代碼,它是GeneralAisleViewController

然後,你需要做的是添加UITableView進入細胞的子觀點,如:

代碼:

... 
let TableView = cell.viewWithTag(2) as! UITableView 
self.tableView = TableView 
cell.addSubview(TableView) 
return cell 

然後表視圖會從取表視圖細胞中的數據源。

然而,事情永遠不會比他們看起來更容易。 UITableViewUICollectionView都爲他們的細胞共享reuse技術,所以每次從隊列中獲得一個細胞時,它們都會被重用,而不是創建,所以在獲得細胞之後,您需要非常小心地處理它們。

更好的使用prepareReuse清理單元格的子視圖,然後再將其他屬性或視圖分配到單元格中。

相關問題