I implemented a CollectionView in a TableViewCell but I need read dynamic data for set cells on CollectionView.
I can read data on extension from class TableViewCell, maybe can help me pass data from ViewController to the class TableViewCell.
class MultipleTableViewCell: UITableViewCell {
@IBOutlet fileprivate weak var collectionView: UICollectionView!
}
extension MultipleTableViewCell : UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3 // array.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "foodCell", for: indexPath) as! UserCollectionViewCell
let dict = array.object(at: indexPath.row) as! NSDictionary //Like this
cell.name.text = "How do you read data from ViewController"
cell.email.text = "How do you read data from ViewController"
cell.phone.text = dict["phone"] as? String //Like this
cell.image.image = "How do you read data from ViewController"
return cell
}
}
extension MultipleFoodTableViewCell : UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let itemsPerRow:CGFloat = 1
let hardCodedPadding:CGFloat = 20
let itemWidth = (collectionView.bounds.width / itemsPerRow) - hardCodedPadding
let itemHeight = collectionView.bounds.height - (2 * hardCodedPadding)
return CGSize(width: itemWidth, height: itemHeight)
}
}