UITableView嵌套UICollectionView其实就是在Cell当中添加UICollectionView,并设置其代理和数据源。所以关键代码在UITableViewCell当中。
- 在UITableViewCell中设置UICollectionView
1 | override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { |
- 设置代理和数据源
1 |
|
- 重点是点击代理的触发,因为是在Cell中实现的代理在Controll中无法直接获取到didSelectItemAt的值因此需要自定义一个代理
1.声明一个delegate
1 | weak var delegate : SelectCollectionItemDelegate? |
2.设置delegate方法
1 | @objc protocol SelectCollectionItemDelegate { |
3.实现代理方法 在UICollectionViewDelegate的didSelectItemAt方法中实现
1 | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
4.接收自定义代理 在要实现的Controller中添加自定义代理并设置代理 此处为SelectCollectionItemDelegate 最后实现代理
- collectioncell.delegate = self 此处很关键
1 | func selectCollectionItem(indexPath: IndexPath) { |
自此一个简单的UITableView嵌套UICollectionView就算完成Demo
- 如有误不吝赐教!!!!!