7

配列からコンテンツを取得するカスタムセルを含むテーブルビューがありますが、これはすべて正常にビルドされます。このコンテンツに、さまざまな数のサムネイル画像のコレクション ビューをカスタム テーブル ビュー セルのそれぞれに追加したいと考えています。

ストーリー ボードのカスタム セルにコレクションを追加しました。Collection を Custom Cell.m にリンクしました (そこに移動する必要があるかどうかはわかりません)。コレクション カスタム セルを作成し、画像をリンクしました。

コレクションビューを構築するためのメソッドは、カスタムテーブルCell.mまたはView Controller.mに配置する必要がありますか? ストーリー ボードの画像があります。カスタム テーブル セルが表示され、(あまり明確ではありませんが) 一番下に、画像を入力したいコレクション ビュー (水平スクロール) があります。また、どのような情報が役立つかわからないため、情報が不足していたら申し訳ありません。

カスタム テーブル セルの画像

4

2 に答える 2

4

DelagateDataSourceUICollectionViewカスタムUITableViewCellクラス内に配置する必要があります。

ここに素晴らしいチュートリアルがあります。

tableview セル内の tableview についてですが、考え方はかなり似ています。

幸運を!

于 2013-06-15T05:58:00.257 に答える
2

Here is the solution for swift. you need to setup a collectionview data source and delegate into the tableview cell using tableView delegation method cellForRowAtIndexPath, after this use a collectionview datasource and delegate method into a viewController where you have confirmed tableveiew data source and delegate. Here is the code for mainViewController:

extension MainViewController:UITableViewDataSource, UITableViewDelegate {

// .....do some table view setup like numberOfRowsInSection ......

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("yourReusecellIdentifier", forIndexPath: indexPath) as! yourCustomCell

cell.setCollectionViewDataSourceDelegate(self, forRow: indexPath.row)

 return cell
}
}

Here cell.setcollectionViewDataSourceDelegate(self, forRow:indexPath.rom) code sets a collectionview delegate and datasource into table view cell after this drag the collectionview outlet to tableview cell. Into the tableView cell add a mehod setcollectionViewDataSourceDelegate to set collectionView delegate as follow :

class yourCustomCell: UITableViewCell {

//MARK:- Properties

@IBOutlet weak var collectionView: UICollectionView!    

//MARK:- initialization methods

override func awakeFromNib() {
    super.awakeFromNib()
    setupView()
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

}

//MARK:- Setup collectionView datasource and delegate

func setCollectionViewDataSourceDelegate
    <D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>>
    (dataSourceDelegate: D, forRow row: Int) {

    collectionView.delegate = dataSourceDelegate
    collectionView.dataSource = dataSourceDelegate
    collectionView.tag = row
    collectionView.reloadData()
}
}

After this use the collection view delegate method into you view controller:

extension MainViewController: UICollectionViewDelegate, UICollectionViewDataSource {

func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {

       return  2

}

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

        return 5
}

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

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("collectionViewReuseIdentifier", forIndexPath: indexPath) as! YourCollectionViewCustomCell

         .......cell configure....

        return cell

}
}

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {

 print("get selected collectionview itemindex \(indexPath.row)")

}
}

For clear explanation visit this https://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell-in-swift/

于 2016-08-05T17:39:35.550 に答える